rusefi/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini

8306 lines
599 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; This is a TunerStudio project for the rusEFI.com engine management system
;
; This file has been generated by invoking gen_config.bat.
; The input files are
; rusefi.input the common template
; rusefi_config.txt the project specific file
;
; In TunerStudio some fields have little question mark on the left of the name for additional field tips.
; Those tips are defined in ../integration/rusefi_config.txt
;
; For example
;
; float bias_resistor;Pull-up resistor value on your board;"Ohm"
; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip
; Note that '+' sign is required after first semicolon for tooltop to appear in TunerStudio
;
;
; field = "# blue text"
; field = "! red text"
; field = "normal text"
;
; 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
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI master.2023.06.10.tdg-pdm8.209551285"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmware version for title bar.
signature= "rusEFI master.2023.06.10.tdg-pdm8.209551285" ; signature is expected to be 7 or more characters.
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
ignoreMissingBitOptions = true
; Optimize comms for fast rusEFI ECUs
noCommReadDelay = true;
defaultRuntimeRecordPerSec = 100;
maxUnusedRuntimeRange = 1000;
; Set default IP/port to our IP/port
defaultIpAddress = 192.168.10.1;
defaultIpPort = 29000;
[Constants]
; new packet serial format with CRC
messageEnvelopeFormat = msEnvelope_1.0
endianness = little
nPages = 1
pageIdentifier = "\x00\x00"
pageReadCommand = "R%2o%2c"
burnCommand = "B"
pageActivate = "P"
pageValueWrite = "W%2o%v"
pageChunkWrite = "C%2o%2c%v"
crc32CheckCommand = "k%2o%2c"
retrieveConfigError = "e"
;communication settings
pageActivationDelay = 500 ; Milliseconds delay after burn command. See https://sourceforge.net/p/rusefi/tickets/77/
;e.g. put writeblocks off and add an interwrite delay
writeBlocks = on
interWriteDelay = 10
blockReadTimeout = 3000; Milliseconds general timeout
; delayAfterPortOpen = 500
blockingFactor = 750 ; max chunk size
;end communication settings
; name = bits, type, offset, bits
; name = array, type, offset, shape, units, scale, translate, lo, hi, digits
; name = scalar, type, offset, units, scale, translate, lo, hi, digits
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Jun 10 00:39:43 UTC 2023
pageSize = 23168
page = 1
engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",97="ALPHAX_8CHAN_SBC",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",3="FORD_ASPIRE_1996",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",47="FRANKENSO_MAZDA_MIATA_2003",56="FRANKENSO_MAZDA_MIATA_NA8",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",8="GY6_139QMB",33="HELLEN72_ETB",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",75="HELLEN_134_BMW",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",73="HELLEN_55_BMW",74="HELLEN_88_BMW",34="HELLEN_NA6",10="HELLEN_NA8_96",80="HELLEN_NA94",83="HELLEN_NB1",94="HELLEN_NB1_36",69="HELLEN_NB2",86="HELLEN_NB2_36",43="HONDA_600",60="L9779_BENCH_ENGINE",55="MAZDA_MIATA_2003_BOARD_TEST",54="MAZDA_MIATA_2003_NA_RAIL",21="MIATA_1996",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",16="MITSU_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",20="MRE_MIATA_94_MAP",66="MRE_MIATA_NA6_MAP",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",9="PROTEUS_E65_6H_MAN_IN_THE_MIDDLE",27="PROTEUS_GM_LS_4",6="PROTEUS_HARLEY",90="PROTEUS_HONDA_K",91="PROTEUS_HONDA_OBD2A",104="PROTEUS_HYUNDAI_PB",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",67="PROTEUS_MIATA_NB2",93="PROTEUS_N73",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",98="PROTEUS_SBC",92="PROTEUS_VAG_80_18T",39="PROTEUS_VW_B6",29="SACHS",70="SUBARUEG33_DEFAULTS",22="SUBARU_2003_WRX",100="TEST_100",101="TEST_101",102="TEST_102",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",59="TLE8888_BENCH_ENGINE",44="TOYOTA_2JZ_GTE_VVTi",11="UNUSED_11",12="UNUSED_12",13="UNUSED_13",15="UNUSED_15",57="UNUSED_57",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST"
sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0
launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0
rpmHardLimit = scalar, U16, 8, "rpm", 1, 0, 0, 20000, 0
engineSnifferRpmThreshold = scalar, U16, 10, "RPM", 1, 0, 0, 30000, 0
multisparkMaxRpm = scalar, U08, 12, "rpm", 50.0, 0, 0, 3000, 0
maxAcRpm = scalar, U08, 13, "rpm", 50.0, 0, 0, 10000, 0
maxAcTps = scalar, U08, 14, "%", 1, 0, 0, 100, 0
maxAcClt = scalar, U08, 15, "deg C", 1, 0, 0, 150, 0
knockNoiseRpmBins = array, U16, 16, [16], "RPM", 1, 0, 0, 30000, 0
multisparkMaxSparkingAngle = scalar, U08, 48, "deg", 1, 0, 0, 60, 0
multisparkMaxExtraSparkCount = scalar, U08, 49, "count", 1, 0, 1, 5, 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
isForcedInduction = bits, U32, 120, [0:0], "false", "true"
useFordRedundantTps = bits, U32, 120, [1:1], "false", "true"
enableKline = bits, U32, 120, [2:2], "false", "true"
overrideTriggerGaps = bits, U32, 120, [3:3], "false", "true"
enableFan1WithAc = bits, U32, 120, [4:4], "false", "true"
enableFan2WithAc = bits, U32, 120, [5:5], "false", "true"
disableFan1WhenStopped = bits, U32, 120, [6:6], "false", "true"
disableFan2WhenStopped = bits, U32, 120, [7:7], "false", "true"
enableTrailingSparks = bits, U32, 120, [8:8], "false", "true"
etb_use_two_wires = bits, U32, 120, [9:9], "false", "true"
isDoubleSolenoidIdle = bits, U32, 120, [10:10], "false", "true"
useEeprom = bits, U32, 120, [11:11], "false", "true"
useCicPidForIdle = bits, U32, 120, [12:12], "false", "true"
useTLE8888_cranking_hack = bits, U32, 120, [13:13], "false", "true"
kickStartCranking = bits, U32, 120, [14:14], "false", "true"
useSeparateIdleTablesForCrankingTaper = bits, U32, 120, [15:15], "false", "true"
launchControlEnabled = bits, U32, 120, [16:16], "false", "true"
doNotFilterTriggerEdgeNoise = bits, U32, 120, [17:17], "with filter", "without filter"
antiLagEnabled = bits, U32, 120, [18:18], "false", "true"
useRunningMathForCranking = bits, U32, 120, [19:19], "Fixed", "Fuel Map"
displayLogicLevelsInEngineSniffer = bits, U32, 120, [20:20], "false", "true"
useTLE8888_stepper = bits, U32, 120, [21:21], "false", "true"
usescriptTableForCanSniffingFiltering = bits, U32, 120, [22:22], "false", "true"
verboseCan = bits, U32, 120, [23:23], "Do not print", "Print all"
artificialTestMisfire = bits, U32, 120, [24:24], "No thank you", "Danger Mode"
useFordRedundantPps = bits, U32, 120, [25:25], "false", "true"
tpsMin = scalar, S16, 124, "ADC", 1, 0, 0, 1023, 0
tpsMax = scalar, S16, 126, "ADC", 1, 0, 0, 1023, 0
tpsErrorDetectionTooLow = scalar, S16, 128, "%", 1, 0, -10, 0, 0
tpsErrorDetectionTooHigh = scalar, S16, 130, "%", 1, 0, 100, 110, 0
cranking_baseFuel = scalar, F32, 132, "mg", 1, 0, 0, 500, 1
cranking_rpm = scalar, S16, 136, "RPM", 1, 0, 0, 3000, 0
ignitionDwellForCrankingMs = scalar, F32, 140, "ms", 1, 0, 0, 200, 1
etbRevLimitStart = scalar, U16, 144, "rpm", 1, 0, 0, 15000, 0
etbRevLimitRange = scalar, U16, 146, "rpm", 1, 0, 0, 2000, 0
map_samplingAngleBins = array, F32, 148, [8], "", 1, 0, 0, 18000, 2
map_samplingAngle = array, F32, 180, [8], "deg", 1, 0, -720, 720, 2
map_samplingWindowBins = array, F32, 212, [8], "", 1, 0, 0, 18000, 2
map_samplingWindow = array, F32, 244, [8], "deg", 1, 0, -720, 720, 2
map_sensor_lowValue = scalar, F32, 276, "kpa", 1, 0, -400, 800, 2
map_sensor_highValue = scalar, F32, 280, "kpa", 1, 0, -400, 800, 2
map_sensor_type = bits, U08, 284, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400"
map_sensor_hwChannel = bits, U08, 285, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
clt_tempC_1 = scalar, F32, 288, "*C", 1, 0, -40, 200, 1
clt_tempC_2 = scalar, F32, 292, "*C", 1, 0, -40, 200, 1
clt_tempC_3 = scalar, F32, 296, "*C", 1, 0, -40, 200, 1
clt_resistance_1 = scalar, F32, 300, "Ohm", 1, 0, 0, 200000, 1
clt_resistance_2 = scalar, F32, 304, "Ohm", 1, 0, 0, 200000, 1
clt_resistance_3 = scalar, F32, 308, "Ohm", 1, 0, 0, 200000, 1
clt_bias_resistor = scalar, F32, 312, "Ohm", 1, 0, 0, 200000, 1
clt_adcChannel = bits, U08, 316, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
iat_tempC_1 = scalar, F32, 320, "*C", 1, 0, -40, 200, 1
iat_tempC_2 = scalar, F32, 324, "*C", 1, 0, -40, 200, 1
iat_tempC_3 = scalar, F32, 328, "*C", 1, 0, -40, 200, 1
iat_resistance_1 = scalar, F32, 332, "Ohm", 1, 0, 0, 200000, 1
iat_resistance_2 = scalar, F32, 336, "Ohm", 1, 0, 0, 200000, 1
iat_resistance_3 = scalar, F32, 340, "Ohm", 1, 0, 0, 200000, 1
iat_bias_resistor = scalar, F32, 344, "Ohm", 1, 0, 0, 200000, 1
iat_adcChannel = bits, U08, 348, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
launchTimingRetard = scalar, S32, 352, "deg", 1, 0, -180, 180, 2
hip9011PrescalerAndSDO = scalar, S32, 356, "integer", 1, 0, 0, 32, 0
knockBandCustom = scalar, F32, 360, "kHz", 1, 0, 0, 20, 2
displacement = scalar, U16, 364, "L", 0.001, 0, 0, 65, 3
triggerSimulatorRpm = scalar, U16, 366, "RPM", 1, 0, 0, 30000, 0
cylindersCount = scalar, U32, 368, "", 1, 0, 1, 12, 0
firingOrder = bits, U08, 372, [0:5], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1-2-3-4-5-6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "1-2-3-4-5-6-7-8", "1-5-4-8-6-3-7-2", "1-4-3-6-2-5", "1-8-7-3-6-5-4-2", "1-6-2-4-3-5", "1-6-5-4-3-2", "1-4-5-2-3-6", "fo32", "fo33", "fo34", "fo35", "fo36", "fo37"
cylinderBore = scalar, F32, 376, "mm", 1, 0, 0, 20000, 2
fuelAlgorithm = bits, U08, 380, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua"
ALSMaxTPS = scalar, U08, 381, "%", 1, 0, 0, 10, 0
crankingInjectionMode = bits, U08, 382, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
injectionMode = bits, U08, 383, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
boostControlMinRpm = scalar, U16, 384, "", 1, 0, 0, 25000, 0
boostControlMinTps = scalar, U08, 386, "", 1, 0, 0, 100, 0
boostControlMinMap = scalar, U08, 387, "", 1, 0, 0, 250, 0
crankingTimingAngle = scalar, F32, 388, "deg", 1, 0, -30, 30, 0
ignitionMode = bits, U08, 392, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
gapTrackingLengthOverride = scalar, S08, 393, "count", 1, 0, 1, 18, 0
maxIdleVss = scalar, U08, 394, "kph", 1, 0, 0, 100, 0
minOilPressureAfterStart = scalar, U16, 396, "kPa", 1, 0, 0, 1000, 0
timingMode = bits, U08, 398, [0:0], "dynamic", "fixed"
fixedModeTiming = scalar, F32, 400, "RPM", 1, 0, 0, 3000, 0
globalTriggerAngleOffset = scalar, F32, 404, "deg btdc", 1, 0, -720, 720, 0
analogInputDividerCoefficient = scalar, F32, 408, "coef", 1, 0, 0.01, 10, 2
vbattDividerCoeff = scalar, F32, 412, "coef", 1, 0, 0.01, 99, 2
fanOnTemperature = scalar, F32, 416, "deg C", 1, 0, 0, 150, 0
fanOffTemperature = scalar, F32, 420, "deg C", 1, 0, 0, 150, 0
driveWheelRevPerKm = scalar, F32, 424, "revs/km", 1, 0, 100, 1000, 1
canNbcType = bits, U08, 428, [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"
canSleepPeriodMs = scalar, S32, 432, "ms", 1, 0, 0, 1000, 2
unused440 = scalar, U08, 436, "", 1, 0, 0, 100, 0
byFirmwareVersion = scalar, S32, 440, "index", 1, 0, 0, 300, 0
tps1_1AdcChannel = bits, U08, 444, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
vbattAdcChannel = bits, U08, 445, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
fuelLevelSensor = bits, U08, 446, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
tps2_1AdcChannel = bits, U08, 447, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
idle_derivativeFilterLoss = scalar, F32, 448, "x", 1, 0, -1000000, 1000000, 4
trailingSparkAngle = scalar, S32, 452, "angle", 1, 0, 0, 720, 0
trigger_type = bits, U32, 456, [0:6], "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "trg11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75", "Mitsu 4G63 Crank", "trg77", "trg78", "trg79"
trigger_customTotalToothCount = scalar, S32, 460, "number", 1, 0, 1, 300, 0
trigger_customSkippedToothCount = scalar, S32, 464, "number", 1, 0, 0, 300, 0
airByRpmTaper = scalar, F32, 468, "%", 1, 0, 0, 50, 1
hip9011SpiDevice = bits, U08, 472, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
boostControlSafeDutyCycle = scalar, U08, 473, "%", 1, 0, 0, 100, 0
mafAdcChannel = bits, U08, 474, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
globalFuelCorrection = scalar, F32, 476, "coef", 1, 0, 0, 1000, 2
adcVcc = scalar, F32, 480, "volts", 1, 0, 0, 6, 3
mapCamDetectionAnglePosition = scalar, F32, 484, "Deg", 1, 0, 0, 360, 0
camInputs1 = bits, U16, 488, [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"
camInputs2 = bits, U16, 490, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
camInputs3 = bits, U16, 492, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
camInputs4 = bits, U16, 494, [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"
afr_hwChannel = bits, U08, 496, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
afr_hwChannel2 = bits, U08, 497, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
afr_v1 = scalar, F32, 500, "volts", 1, 0, 0, 10, 2
afr_value1 = scalar, F32, 504, "AFR", 1, 0, 0, 1000, 2
afr_v2 = scalar, F32, 508, "volts", 1, 0, 0, 10, 2
afr_value2 = scalar, F32, 512, "AFR", 1, 0, 0, 1000, 2
throttlePedalPositionAdcChannel = bits, U08, 516, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
tle6240_cs = bits, U16, 518, [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"
tle6240_csPinMode = bits, U08, 520, [0:1], "default", "default inverted", "open collector", "open collector inverted"
throttlePedalUpPin = bits, U16, 522, [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"
baroSensor_lowValue = scalar, F32, 524, "kpa", 1, 0, -400, 800, 2
baroSensor_highValue = scalar, F32, 528, "kpa", 1, 0, -400, 800, 2
baroSensor_type = bits, U08, 532, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400"
baroSensor_hwChannel = bits, U08, 533, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
idle_solenoidFrequency = scalar, S32, 536, "Hz", 1, 0, 0, 3000, 0
idle_solenoidPin = bits, U16, 540, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
idle_stepperDirectionPin = bits, U16, 542, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
idle_stepperStepPin = bits, U16, 544, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
idle_solenoidPinMode = bits, U08, 546, [0:1], "default", "default inverted", "open collector", "open collector inverted"
manIdlePosition = scalar, F32, 548, "%", 1, 0, 0, 100, 0
knockRetardAggression = scalar, U08, 552, "%", 0.1, 0, 0, 20, 1
knockRetardReapplyRate = scalar, U08, 553, "deg/s", 0.1, 0, 0, 10, 1
engineSyncCam = bits, S08, 554, [0:1], "Intake First Bank", "Exhaust First Bank", "Intake Second Bank", "Exhaust Second Bank"
vssFilterReciprocal = scalar, U08, 555, "", 1, 0, 3, 200 0
vssGearRatio = scalar, U16, 556, "ratio", 0.001, 0, 0, 60, 3
vssToothCount = scalar, U08, 558, "count", 1, 0, 1, 100, 0
idleVeOverrideMode = bits, U08, 559, [0:1], "None", "MAP", "TPS"
l9779_cs = bits, U16, 560, [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"
injectionPins1 = bits, U16, 562, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins2 = bits, U16, 564, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins3 = bits, U16, 566, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins4 = bits, U16, 568, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins5 = bits, U16, 570, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins6 = bits, U16, 572, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins7 = bits, U16, 574, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins8 = bits, U16, 576, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins9 = bits, U16, 578, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins10 = bits, U16, 580, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins11 = bits, U16, 582, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPins12 = bits, U16, 584, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins1 = bits, U16, 586, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins2 = bits, U16, 588, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins3 = bits, U16, 590, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins4 = bits, U16, 592, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins5 = bits, U16, 594, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins6 = bits, U16, 596, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins7 = bits, U16, 598, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins8 = bits, U16, 600, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins9 = bits, U16, 602, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins10 = bits, U16, 604, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins11 = bits, U16, 606, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
ignitionPins12 = bits, U16, 608, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
injectionPinMode = bits, U08, 610, [0:1], "default", "default inverted", "open collector", "open collector inverted"
ignitionPinMode = bits, U08, 611, [0:1], "default", "default inverted", "open collector", "open collector inverted"
fuelPumpPin = bits, U16, 612, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
fuelPumpPinMode = bits, U08, 614, [0:1], "default", "default inverted", "open collector", "open collector inverted"
malfunctionIndicatorPin = bits, U16, 616, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
malfunctionIndicatorPinMode = bits, U08, 618, [0:1], "default", "default inverted", "open collector", "open collector inverted"
fanPinMode = bits, U08, 619, [0:1], "default", "default inverted", "open collector", "open collector inverted"
fanPin = bits, U16, 620, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
clutchDownPin = bits, U16, 622, [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"
alternatorControlPin = bits, U16, 624, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
alternatorControlPinMode = bits, U08, 626, [0:1], "default", "default inverted", "open collector", "open collector inverted"
clutchDownPinMode = bits, U08, 627, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
digitalPotentiometerChipSelect1 = bits, U16, 628, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
digitalPotentiometerChipSelect2 = bits, U16, 630, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
digitalPotentiometerChipSelect3 = bits, U16, 632, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
digitalPotentiometerChipSelect4 = bits, U16, 634, [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"
electronicThrottlePin1Mode = bits, U08, 636, [0:1], "default", "default inverted", "open collector", "open collector inverted"
max31855spiDevice = bits, U08, 637, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
debugTriggerSync = bits, U16, 638, [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"
digitalPotentiometerSpiDevice = bits, U08, 640, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
mc33972_cs = bits, U16, 642, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
mc33972_csPinMode = bits, U08, 644, [0:1], "default", "default inverted", "open collector", "open collector inverted"
auxFastSensor1_adcChannel = bits, U08, 645, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
tps1_2AdcChannel = bits, U08, 646, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
tps2_2AdcChannel = bits, U08, 647, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
throttlePedalPositionSecondAdcChannel = bits, U08, 648, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
fuelLevelValues = array, U08, 649, [8], "%", 1, 0, 0, 100, 0
afr_type = bits, S08, 657, [0:2], "BPSX", "Innovate", "14Point7", "Narrow", "PLX", "Custom"
idle_antiwindupFreq = scalar, F32, 660, "x", 1, 0, -1000000, 1000000, 4
triggerInputPins1 = bits, U16, 664, [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"
triggerInputPins2 = bits, U16, 666, [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"
mc33_t_min_boost = scalar, U16, 668, "us", 1, 0, 0, 10000, 0
hip9011CsPinMode = bits, U08, 670, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tachOutputPin = bits, U16, 672, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tachOutputPinMode = bits, U08, 674, [0:1], "default", "default inverted", "open collector", "open collector inverted"
mainRelayPin = bits, U16, 676, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
sdCardCsPin = bits, U16, 678, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
canTxPin = bits, U16, 680, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
canRxPin = bits, U16, 682, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
throttlePedalUpPinMode = bits, U08, 684, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
acIdleExtraOffset = scalar, U08, 685, "%", 1, 0, 0, 100, 0
finalGearRatio = scalar, U16, 686, "ratio", 0.01, 0, 0, 10, 2
tcuInputSpeedSensorPin = bits, U16, 688, [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"
tcuInputSpeedSensorTeeth = scalar, U08, 690, "", 1, 0, 0, 100, 0
wastegatePositionMin = scalar, U16, 692, "mv", 1, 0, 0, 5000, 0
wastegatePositionMax = scalar, U16, 694, "mv", 1, 0, 0, 5000, 0
idlePositionMin = scalar, U16, 696, "mv", 1, 0, 0, 5000, 0
idlePositionMax = scalar, U16, 698, "mv", 1, 0, 0, 5000, 0
tunerStudioSerialSpeed = scalar, U32, 700, "BPs", 1, 0, 0, 1000000, 0
compressionRatio = scalar, F32, 704, "CR", 1, 0, 0, 300, 1
triggerSimulatorPins1 = bits, U16, 708, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
triggerSimulatorPins2 = bits, U16, 710, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
fordInjectorSmallPulseSlope = scalar, U16, 712, "g/s", 0.001, 0, 0, 65, 3
triggerSimulatorPinModes1 = bits, U08, 714, [0:1], "default", "default inverted", "open collector", "open collector inverted"
triggerSimulatorPinModes2 = bits, U08, 715, [0:1], "default", "default inverted", "open collector", "open collector inverted"
maf2AdcChannel = bits, U08, 716, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
o2heaterPin = bits, U16, 718, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
o2heaterPinModeTodO = bits, U08, 720, [0:1], "default", "default inverted", "open collector", "open collector inverted"
is_enabled_spi_1 = bits, U32, 724, [0:0], "false", "true"
is_enabled_spi_2 = bits, U32, 724, [1:1], "false", "true"
is_enabled_spi_3 = bits, U32, 724, [2:2], "false", "true"
isSdCardEnabled = bits, U32, 724, [3:3], "false", "true"
rusefiVerbose29b = bits, U32, 724, [4:4], "11 bit", "29 bit"
unusedIsEngineControlEnabled = bits, U32, 724, [5:5], "false", "true"
isHip9011Enabled = bits, U32, 724, [6:6], "false", "true"
isVerboseAlternator = bits, U32, 724, [7:7], "false", "true"
verboseQuad = bits, U32, 724, [8:8], "false", "true"
useStepperIdle = bits, U32, 724, [9:9], "false", "true"
enabledStep1Limiter = bits, U32, 724, [10:10], "false", "true"
useTpicAdvancedMode = bits, U32, 724, [11:11], "false", "true"
unused760b12 = bits, U32, 724, [12:12], "false", "true"
verboseTLE8888 = bits, U32, 724, [13:13], "false", "true"
enableVerboseCanTx = bits, U32, 724, [14:14], "false", "true"
etb1configured = bits, U32, 724, [15:15], "false", "true"
etb2configured = bits, U32, 724, [16:16], "false", "true"
measureMapOnlyInOneCylinder = bits, U32, 724, [17:17], "false", "true"
stepperForceParkingEveryRestart = bits, U32, 724, [18:18], "false", "true"
isFasterEngineSpinUpEnabled = bits, U32, 724, [19:19], "false", "true"
coastingFuelCutEnabled = bits, U32, 724, [20:20], "false", "true"
useIacTableForCoasting = bits, U32, 724, [21:21], "false", "true"
useNoiselessTriggerDecoder = bits, U32, 724, [22:22], "false", "true"
useIdleTimingPidControl = bits, U32, 724, [23:23], "false", "true"
disableEtbWhenEngineStopped = bits, U32, 724, [24:24], "false", "true"
is_enabled_spi_4 = bits, U32, 724, [25:25], "false", "true"
pauseEtbControl = bits, U32, 724, [26:26], "false", "true"
alignEngineSnifferAtTDC = bits, U32, 724, [27:27], "false", "true"
verboseKLine = bits, U32, 724, [28:28], "false", "true"
idleIncrementalPidCic = bits, U32, 724, [29:29], "false", "true"
enableAemXSeries = bits, U32, 724, [30:30], "false", "true"
logicAnalyzerPins1 = bits, U16, 728, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
logicAnalyzerPins2 = bits, U16, 730, [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"
logicAnalyzerPins3 = bits, U16, 732, [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"
logicAnalyzerPins4 = bits, U16, 734, [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"
mainRelayPinMode = bits, U08, 736, [0:1], "default", "default inverted", "open collector", "open collector inverted"
hip9011CsPin = bits, U16, 738, [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"
hip9011IntHoldPin = bits, U16, 740, [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"
hip9011IntHoldPinMode = bits, U08, 742, [0:1], "default", "default inverted", "open collector", "open collector inverted"
verboseCanBaseAddress = scalar, U32, 744, "", 1, 0, 0, 536870911, 0
mc33_hvolt = scalar, U08, 748, "v", 1, 0, 40, 70, 0
minimumBoostClosedLoopMap = scalar, U08, 749, "kPa", 1, 0, 0, 255, 0
acFanPin = bits, U16, 750, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
acFanPinMode = bits, U08, 752, [0:1], "default", "default inverted", "open collector", "open collector inverted"
l9779spiDevice = bits, U08, 753, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
dwellVoltageCorrVoltBins = array, U08, 754, [8], "volts", 0.1, 0, 0, 20, 1
imuType = bits, U08, 762, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4"
dwellVoltageCorrValues = array, U08, 763, [8], "multiplier", 0.02, 0, 0, 5, 2
vehicleWeight = scalar, U16, 772, "kg", 1, 0, 0, 10000, 0
idlePidRpmUpperLimit = scalar, S16, 774, "RPM", 1, 0, 0, 500, 0
applyNonlinearBelowPulse = scalar, U16, 776, "ms", 0.001, 0, 0, 30, 3
lps25BaroSensorScl = bits, U16, 778, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
lps25BaroSensorSda = bits, U16, 780, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
vehicleSpeedSensorInputPin = bits, U16, 782, [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"
clutchUpPin = bits, U16, 784, [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"
injectorNonlinearMode = bits, U08, 786, [0:1], "None", "Polynomial", "Ford (dual slope)"
clutchUpPinMode = bits, U08, 787, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
max31855_cs1 = bits, U16, 788, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
max31855_cs2 = bits, U16, 790, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
max31855_cs3 = bits, U16, 792, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
max31855_cs4 = bits, U16, 794, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
max31855_cs5 = bits, U16, 796, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
max31855_cs6 = bits, U16, 798, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
max31855_cs7 = bits, U16, 800, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
max31855_cs8 = bits, U16, 802, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
flexSensorPin = bits, U16, 804, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
test557pin = bits, U16, 806, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
stepperDirectionPinMode = bits, U08, 808, [0:1], "default", "default inverted", "open collector", "open collector inverted"
mc33972spiDevice = bits, U08, 809, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
stoichRatioSecondary = scalar, U08, 810, ":1", 0.1, 0, 5, 25, 1
etbMaximumPosition = scalar, U08, 811, "%", 1, 0, 70, 100, 0
sdCardLogFrequency = scalar, U16, 812, "hz", 1, 0, 1, 250, 0
idlePositionSensor = bits, U08, 814, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
debugMapAveraging = bits, U16, 816, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
starterRelayDisablePin = bits, U16, 818, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
starterRelayDisablePinMode = bits, U08, 820, [0:1], "default", "default inverted", "open collector", "open collector inverted"
secondSolenoidPin = bits, U16, 822, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
startStopButtonPin = bits, U16, 824, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
mapMinBufferLength = scalar, S32, 828, "count", 1, 0, 1, 24, 0
idlePidDeactivationTpsThreshold = scalar, S16, 832, "%", 1, 0, 0, 50, 0
stepperParkingExtraSteps = scalar, S16, 834, "%", 1, 0, 0, 3000, 0
tps1SecondaryMin = scalar, U16, 836, "ADC", 1, 0, 0, 1000, 0
tps1SecondaryMax = scalar, U16, 838, "ADC", 1, 0, 0, 1000, 0
antiLagRpmTreshold = scalar, S16, 840, "rpm", 1, 0, 0, 20000, 0
startCrankingDuration = scalar, U16, 842, "Seconds", 1, 0, 0, 30, 0
triggerErrorPin = bits, U16, 844, [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"
triggerErrorPinMode = bits, U08, 846, [0:1], "default", "default inverted", "open collector", "open collector inverted"
acRelayPin = bits, U16, 848, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
acRelayPinMode = bits, U08, 850, [0:1], "default", "default inverted", "open collector", "open collector inverted"
scriptSetting1 = scalar, F32, 852, "", 1, 0, 0, 18000, 2
scriptSetting2 = scalar, F32, 856, "", 1, 0, 0, 18000, 2
scriptSetting3 = scalar, F32, 860, "", 1, 0, 0, 18000, 2
scriptSetting4 = scalar, F32, 864, "", 1, 0, 0, 18000, 2
scriptSetting5 = scalar, F32, 868, "", 1, 0, 0, 18000, 2
scriptSetting6 = scalar, F32, 872, "", 1, 0, 0, 18000, 2
scriptSetting7 = scalar, F32, 876, "", 1, 0, 0, 18000, 2
scriptSetting8 = scalar, F32, 880, "", 1, 0, 0, 18000, 2
spi1mosiPin = bits, U16, 884, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
spi1misoPin = bits, U16, 886, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
spi1sckPin = bits, U16, 888, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
spi2mosiPin = bits, U16, 890, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
spi2misoPin = bits, U16, 892, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
spi2sckPin = bits, U16, 894, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
spi3mosiPin = bits, U16, 896, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
spi3misoPin = bits, U16, 898, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
spi3sckPin = bits, U16, 900, [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"
cdmInputPin = bits, U16, 902, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
consoleUartDevice = bits, U08, 904, [0:1], "Off", "UART1", "UART2", "UART3"
sensorChartMode = bits, S08, 905, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1"
mafSensorType = bits, S08, 906, [0:1], "v0", "v1", "v2", "v3"
clutchUpPinInverted = bits, U32, 908, [0:0], "false", "true"
clutchDownPinInverted = bits, U32, 908, [1:1], "false", "true"
useHbridgesToDriveIdleStepper = bits, U32, 908, [2:2], "false", "true"
multisparkEnable = bits, U32, 908, [3:3], "false", "true"
enableLaunchRetard = bits, U32, 908, [4:4], "false", "true"
unfinishedenableLaunchBoost = bits, U32, 908, [5:5], "false", "true"
unfinishedlaunchDisableBySpeed = bits, U32, 908, [6:6], "false", "true"
enableCanVss = bits, U32, 908, [7:7], "false", "true"
enableInnovateLC2 = bits, U32, 908, [8:8], "false", "true"
showHumanReadableWarning = bits, U32, 908, [9:9], "false", "true"
stftIgnoreErrorMagnitude = bits, U32, 908, [10:10], "false", "true"
vvtBooleanForVerySpecialCases = bits, U32, 908, [11:11], "false", "true"
enableSoftwareKnock = bits, U32, 908, [12:12], "false", "true"
verboseVVTDecoding = bits, U32, 908, [13:13], "false", "true"
invertCamVVTSignal = bits, U32, 908, [14:14], "false", "true"
consumeObdSensors = bits, U32, 908, [15:15], "false", "true"
knockBankCyl1 = bits, U32, 908, [16:16], "Channel 1", "Channel 2"
knockBankCyl2 = bits, U32, 908, [17:17], "Channel 1", "Channel 2"
knockBankCyl3 = bits, U32, 908, [18:18], "Channel 1", "Channel 2"
knockBankCyl4 = bits, U32, 908, [19:19], "Channel 1", "Channel 2"
knockBankCyl5 = bits, U32, 908, [20:20], "Channel 1", "Channel 2"
knockBankCyl6 = bits, U32, 908, [21:21], "Channel 1", "Channel 2"
knockBankCyl7 = bits, U32, 908, [22:22], "Channel 1", "Channel 2"
knockBankCyl8 = bits, U32, 908, [23:23], "Channel 1", "Channel 2"
knockBankCyl9 = bits, U32, 908, [24:24], "Channel 1", "Channel 2"
knockBankCyl10 = bits, U32, 908, [25:25], "Channel 1", "Channel 2"
knockBankCyl11 = bits, U32, 908, [26:26], "Channel 1", "Channel 2"
knockBankCyl12 = bits, U32, 908, [27:27], "Channel 1", "Channel 2"
tcuEnabled = bits, U32, 908, [28:28], "false", "true"
canBroadcastUseChannelTwo = bits, U32, 908, [29:29], "first", "second"
useRawOutputToDriveIdleStepper = bits, U32, 908, [30:30], "false", "true"
verboseCan2 = bits, U32, 908, [31:31], "Do not print", "Print all"
etbIo1_directionPin1 = bits, U16, 912, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
etbIo1_directionPin2 = bits, U16, 914, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
etbIo1_controlPin = bits, U16, 916, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
etbIo1_disablePin = bits, U16, 918, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
etbIo2_directionPin1 = bits, U16, 920, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
etbIo2_directionPin2 = bits, U16, 922, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
etbIo2_controlPin = bits, U16, 924, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
etbIo2_disablePin = bits, U16, 926, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
boostControlPin = bits, U16, 928, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
boostControlPinMode = bits, U08, 930, [0:1], "default", "default inverted", "open collector", "open collector inverted"
ALSActivatePin = bits, U16, 932, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
launchActivatePin = bits, U16, 934, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
boostPid_pFactor = scalar, F32, 936, "", 1, 0, -10000, 10000, 4
boostPid_iFactor = scalar, F32, 940, "", 1, 0, -10000, 10000, 4
boostPid_dFactor = scalar, F32, 944, "", 1, 0, -10000, 10000, 4
boostPid_offset = scalar, S16, 948, "", 1, 0, -1000, 1000, 0
boostPid_periodMs = scalar, S16, 950, "ms", 1, 0, 0, 3000, 0
boostPid_minValue = scalar, S16, 952, "", 1, 0, -30000, 30000, 0
boostPid_maxValue = scalar, S16, 954, "", 1, 0, -30000, 30000, 0
boostType = bits, U08, 956, [0:0], "Open Loop", "Open + Closed Loop"
boostPwmFrequency = scalar, S32, 960, "Hz", 1, 0, 0, 3000, 0
launchActivationMode = bits, S08, 964, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)"
antiLagActivationMode = bits, S08, 965, [0:0], "Switch Input", "Always Active"
launchSpeedThreshold = scalar, S32, 968, "Kph", 1, 0, 0, 300, 0
launchTimingRpmRange = scalar, S32, 972, "RPM", 1, 0, 0, 8000, 0
launchFuelAdded = scalar, S32, 976, "%", 1, 0, 0, 100, 0
launchBoostDuty = scalar, S32, 980, "%", 1, 0, 0, 100, 0
hardCutRpmRange = scalar, S32, 984, "RPM", 1, 0, 0, 3000, 0
turbochargerFilter = scalar, F32, 988, "", 1, 0, 0, 100, 0
launchTpsThreshold = scalar, S32, 992, "", 1, 0, 0, 20000, 0
launchActivateDelay = scalar, F32, 996, "", 1, 0, 0, 20000, 0
stft_maxIdleRegionRpm = scalar, U08, 1000, "RPM", 50.0, 0, 0, 12000, 0
stft_maxOverrunLoad = scalar, U08, 1001, "load", 1, 0, 0, 250, 0
stft_minPowerLoad = scalar, U08, 1002, "load", 1, 0, 0, 250, 0
stft_deadband = scalar, U08, 1003, "%", 0.1, 0, 0, 3, 1
stft_minClt = scalar, S08, 1004, "C", 1, 0, -20, 100, 0
stft_minAfr = scalar, U08, 1005, "afr", 0.1, 0, 10, 20, 1
stft_maxAfr = scalar, U08, 1006, "afr", 0.1, 0, 10, 20, 1
stft_startupDelay = scalar, U08, 1007, "seconds", 1, 0, 0, 250, 0
stft_cellCfgs1_maxAdd = scalar, S08, 1008, "%", 1, 0, 0, 25, 0
stft_cellCfgs1_maxRemove = scalar, S08, 1009, "%", 1, 0, -25, 0, 0
stft_cellCfgs1_timeConstant = scalar, U16, 1010, "sec", 0.1, 0, 0.1, 100, 2
stft_cellCfgs2_maxAdd = scalar, S08, 1012, "%", 1, 0, 0, 25, 0
stft_cellCfgs2_maxRemove = scalar, S08, 1013, "%", 1, 0, -25, 0, 0
stft_cellCfgs2_timeConstant = scalar, U16, 1014, "sec", 0.1, 0, 0.1, 100, 2
stft_cellCfgs3_maxAdd = scalar, S08, 1016, "%", 1, 0, 0, 25, 0
stft_cellCfgs3_maxRemove = scalar, S08, 1017, "%", 1, 0, -25, 0, 0
stft_cellCfgs3_timeConstant = scalar, U16, 1018, "sec", 0.1, 0, 0.1, 100, 2
stft_cellCfgs4_maxAdd = scalar, S08, 1020, "%", 1, 0, 0, 25, 0
stft_cellCfgs4_maxRemove = scalar, S08, 1021, "%", 1, 0, -25, 0, 0
stft_cellCfgs4_timeConstant = scalar, U16, 1022, "sec", 0.1, 0, 0.1, 100, 2
stepperDcIo1_directionPin1 = bits, U16, 1024, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
stepperDcIo1_directionPin2 = bits, U16, 1026, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
stepperDcIo1_controlPin = bits, U16, 1028, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
stepperDcIo1_disablePin = bits, U16, 1030, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
stepperDcIo2_directionPin1 = bits, U16, 1032, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
stepperDcIo2_directionPin2 = bits, U16, 1034, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
stepperDcIo2_controlPin = bits, U16, 1036, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
stepperDcIo2_disablePin = bits, U16, 1038, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
engineMake = string, ASCII, 1040, 32
engineCode = string, ASCII, 1072, 32
vehicleName = string, ASCII, 1104, 32
tcu_solenoid1 = bits, U16, 1136, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_solenoid2 = bits, U16, 1138, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_solenoid3 = bits, U16, 1140, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_solenoid4 = bits, U16, 1142, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_solenoid5 = bits, U16, 1144, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_solenoid6 = bits, U16, 1146, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
etbFunctions1 = bits, U08, 1148, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate"
etbFunctions2 = bits, U08, 1149, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate"
drv8860spiDevice = bits, U08, 1150, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
drv8860_cs = bits, U16, 1152, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
drv8860_csPinMode = bits, U08, 1154, [0:1], "default", "default inverted", "open collector", "open collector inverted"
drv8860_miso = bits, U16, 1156, [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"
fuelLevelBins = array, U16, 1158, [8], "volt", 0.001, 0, 0, 5, 3
luaOutputPins1 = bits, U16, 1174, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
luaOutputPins2 = bits, U16, 1176, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
luaOutputPins3 = bits, U16, 1178, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
luaOutputPins4 = bits, U16, 1180, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
luaOutputPins5 = bits, U16, 1182, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
luaOutputPins6 = bits, U16, 1184, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
luaOutputPins7 = bits, U16, 1186, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
luaOutputPins8 = bits, U16, 1188, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
vvtOffsets1 = scalar, F32, 1192, "value", 1, 0, -720, 1000, 1
vvtOffsets2 = scalar, F32, 1196, "value", 1, 0, -720, 1000, 1
vvtOffsets3 = scalar, F32, 1200, "value", 1, 0, -720, 1000, 1
vvtOffsets4 = scalar, F32, 1204, "value", 1, 0, -720, 1000, 1
vrThreshold1_rpmBins = array, U08, 1208, [6], "rpm", 50.0, 0, 0, 12000, 0
vrThreshold1_values = array, U08, 1214, [6], "volts", 0.01, 0, 0, 2.5, 2
vrThreshold1_pin = bits, U16, 1220, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
vrThreshold2_rpmBins = array, U08, 1224, [6], "rpm", 50.0, 0, 0, 12000, 0
vrThreshold2_values = array, U08, 1230, [6], "volts", 0.01, 0, 0, 2.5, 2
vrThreshold2_pin = bits, U16, 1236, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
gpPwmNote1 = string, ASCII, 1240, 16
gpPwmNote2 = string, ASCII, 1256, 16
gpPwmNote3 = string, ASCII, 1272, 16
gpPwmNote4 = string, ASCII, 1288, 16
tps2SecondaryMin = scalar, U16, 1304, "ADC", 1, 0, 0, 1000, 0
tps2SecondaryMax = scalar, U16, 1306, "ADC", 1, 0, 0, 1000, 0
widebandOnSecondBus = bits, U32, 1308, [0:0], "1", "2"
fuelClosedLoopCorrectionEnabled = bits, U32, 1308, [1:1], "false", "true"
isVerboseIAC = bits, U32, 1308, [2:2], "false", "true"
boardUseTachPullUp = bits, U32, 1308, [3:3], "5v", "12v"
boardUseTempPullUp = bits, U32, 1308, [4:4], "Piggyback Mode", "With Pull Ups"
yesUnderstandLocking = bits, U32, 1308, [5:5], "no", "yes"
silentTriggerError = bits, U32, 1308, [6:6], "false", "true"
useLinearCltSensor = bits, U32, 1308, [7:7], "false", "true"
canReadEnabled = bits, U32, 1308, [8:8], "false", "true"
canWriteEnabled = bits, U32, 1308, [9:9], "false", "true"
useLinearIatSensor = bits, U32, 1308, [10:10], "false", "true"
boardUse2stepPullDown = bits, U32, 1308, [11:11], "With Pull Up", "With Pull Down"
tachPulseDurationAsDutyCycle = bits, U32, 1308, [12:12], "Constant time", "Duty cycle"
isAlternatorControlEnabled = bits, U32, 1308, [13:13], "false", "true"
invertPrimaryTriggerSignal = bits, U32, 1308, [14:14], "false", "true"
invertSecondaryTriggerSignal = bits, U32, 1308, [15:15], "false", "true"
cutFuelOnHardLimit = bits, U32, 1308, [16:16], "no", "yes"
cutSparkOnHardLimit = bits, U32, 1308, [17:17], "no", "yes"
launchFuelCutEnable = bits, U32, 1308, [18:18], "false", "true"
launchSparkCutEnable = bits, U32, 1308, [19:19], "false", "true"
boardUseCrankPullUp = bits, U32, 1308, [20:20], "VR", "Hall"
boardUseCamPullDown = bits, U32, 1308, [21:21], "With Pull Up", "With Pull Down"
boardUseCamVrPullUp = bits, U32, 1308, [22:22], "VR", "Hall"
boardUseD2PullDown = bits, U32, 1308, [23:23], "With Pull Up", "With Pull Down"
boardUseD3PullDown = bits, U32, 1308, [24:24], "With Pull Up", "With Pull Down"
boardUseD4PullDown = bits, U32, 1308, [25:25], "With Pull Up", "With Pull Down"
boardUseD5PullDown = bits, U32, 1308, [26:26], "With Pull Up", "With Pull Down"
verboseIsoTp = bits, U32, 1308, [27:27], "false", "true"
engineSnifferFocusOnInputs = bits, U32, 1308, [28:28], "false", "true"
launchActivateInverted = bits, U32, 1308, [29:29], "false", "true"
twoStroke = bits, U32, 1308, [30:30], "Four Stroke", "Two Stroke"
skippedWheelOnCam = bits, U32, 1308, [31:31], "On crankshaft", "On camshaft"
hipOutputChannel = bits, U08, 1312, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
acSwitch = bits, U16, 1314, [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"
vRefAdcChannel = bits, U08, 1316, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
etbNeutralPosition = scalar, U08, 1317, "%", 1, 0, 0, 100, 0
idleMode = bits, U08, 1318, [0:0], "Open Loop + Closed Loop", "Open Loop"
isInjectionEnabled = bits, U32, 1320, [0:0], "false", "true"
isIgnitionEnabled = bits, U32, 1320, [1:1], "false", "true"
isCylinderCleanupEnabled = bits, U32, 1320, [2:2], "false", "true"
complexWallModel = bits, U32, 1320, [3:3], "Basic (constants)", "Advanced (tables)"
alwaysInstantRpm = bits, U32, 1320, [4:4], "false", "true"
isMapAveragingEnabled = bits, U32, 1320, [5:5], "false", "true"
overrideCrankingIacSetting = bits, U32, 1320, [6:6], "false", "true"
useSeparateAdvanceForIdle = bits, U32, 1320, [7:7], "false", "true"
isWaveAnalyzerEnabled = bits, U32, 1320, [8:8], "false", "true"
useSeparateVeForIdle = bits, U32, 1320, [9:9], "false", "true"
verboseTriggerSynchDetails = bits, U32, 1320, [10:10], "false", "true"
isManualSpinningMode = bits, U32, 1320, [11:11], "false", "true"
twoWireBatchInjection = bits, U32, 1320, [12:12], "false", "true"
hondaK = bits, U32, 1320, [13:13], "false", "true"
twoWireBatchIgnition = bits, U32, 1320, [14:14], "false", "true"
useFixedBaroCorrFromMap = bits, U32, 1320, [15:15], "false", "true"
useSeparateAdvanceForCranking = bits, U32, 1320, [16:16], "Fixed (auto taper)", "Table"
useAdvanceCorrectionsForCranking = bits, U32, 1320, [17:17], "false", "true"
flexCranking = bits, U32, 1320, [18:18], "false", "true"
useIacPidMultTable = bits, U32, 1320, [19:19], "false", "true"
isBoostControlEnabled = bits, U32, 1320, [20:20], "false", "true"
launchSmoothRetard = bits, U32, 1320, [21:21], "false", "true"
isPhaseSyncRequiredForIgnition = bits, U32, 1320, [22:22], "false", "true"
useCltBasedRpmLimit = bits, U32, 1320, [23:23], "no", "yes"
forceO2Heating = bits, U32, 1320, [24:24], "no", "yes"
invertVvtControlIntake = bits, U32, 1320, [25:25], "advance", " retard"
invertVvtControlExhaust = bits, U32, 1320, [26:26], "advance", "retard"
useBiQuadOnAuxSpeedSensors = bits, U32, 1320, [27:27], "false", "true"
sdTriggerLog = bits, U32, 1320, [28:28], "normal", "trigger"
ALSActivateInverted = bits, U32, 1320, [29:29], "false", "true"
stepper_dc_use_two_wires = bits, U32, 1320, [30:30], "false", "true"
tempBooleanForVerySpecialLogic = bits, U32, 1320, [31:31], "false", "true"
engineChartSize = scalar, U32, 1324, "count", 1, 0, 0, 300, 0
turboSpeedSensorMultiplier = scalar, F32, 1328, "mult", 1, 0, 0, 7000, 3
camInputsDebug1 = bits, U16, 1332, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
camInputsDebug2 = bits, U16, 1334, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
camInputsDebug3 = bits, U16, 1336, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
camInputsDebug4 = bits, U16, 1338, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
acIdleRpmBump = scalar, S16, 1340, "RPM", 1, 0, 0, 1000, 0
warningPeriod = scalar, S16, 1342, "seconds", 1, 0, 0, 60, 0
knockDetectionWindowStart = scalar, F32, 1344, "angle", 1, 0, -1000, 1000, 2
knockDetectionWindowEnd = scalar, F32, 1348, "angle", 1, 0, -1000, 1000, 2
idleStepperReactionTime = scalar, F32, 1352, "ms", 1, 0, 1, 300, 0
idleStepperTotalSteps = scalar, S32, 1356, "count", 1, 0, 5, 3000, 0
noAccelAfterHardLimitPeriodSecs = scalar, F32, 1360, "sec", 1, 0, 0, 60, 0
mapAveragingSchedulingAtIndex = scalar, S32, 1364, "index", 1, 0, 0, 7000, 0
tachPulseDuractionMs = scalar, F32, 1368, "", 1, 0, 0, 100, 2
wwaeTau = scalar, F32, 1372, "Seconds", 1, 0, 0, 3, 2
alternatorControl_pFactor = scalar, F32, 1376, "", 1, 0, -10000, 10000, 4
alternatorControl_iFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4
alternatorControl_dFactor = scalar, F32, 1384, "", 1, 0, -10000, 10000, 4
alternatorControl_offset = scalar, S16, 1388, "", 1, 0, -1000, 1000, 0
alternatorControl_periodMs = scalar, S16, 1390, "ms", 1, 0, 0, 3000, 0
alternatorControl_minValue = scalar, S16, 1392, "", 1, 0, -30000, 30000, 0
alternatorControl_maxValue = scalar, S16, 1394, "", 1, 0, -30000, 30000, 0
etb_pFactor = scalar, F32, 1396, "", 1, 0, -10000, 10000, 4
etb_iFactor = scalar, F32, 1400, "", 1, 0, -10000, 10000, 4
etb_dFactor = scalar, F32, 1404, "", 1, 0, -10000, 10000, 4
etb_offset = scalar, S16, 1408, "", 1, 0, -1000, 1000, 0
etb_periodMs = scalar, S16, 1410, "ms", 1, 0, 0, 3000, 0
etb_minValue = scalar, S16, 1412, "", 1, 0, -30000, 30000, 0
etb_maxValue = scalar, S16, 1414, "", 1, 0, -30000, 30000, 0
triggerInputDebugPins1 = bits, U16, 1416, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
triggerInputDebugPins2 = bits, U16, 1418, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
airTaperRpmRange = scalar, S16, 1420, "", 1, 0, 0, 32000, 0
turboSpeedSensorInputPin = bits, U16, 1422, [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"
tps2Min = scalar, S16, 1424, "ADC", 1, 0, 0, 1023, 0
tps2Max = scalar, S16, 1426, "ADC", 1, 0, 0, 1023, 0
starterControlPin = bits, U16, 1428, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
startStopButtonMode = bits, U08, 1430, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
mc33816_flag0 = bits, U16, 1432, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
tachPulsePerRev = scalar, U08, 1434, "Pulse", 1, 0, 1, 255, 0
mapErrorDetectionTooLow = scalar, F32, 1436, "kPa", 1, 0, -100, 100, 2
mapErrorDetectionTooHigh = scalar, F32, 1440, "kPa", 1, 0, -100, 800, 2
multisparkSparkDuration = scalar, U16, 1444, "ms", 0.001, 0, 0, 3, 2
multisparkDwell = scalar, U16, 1446, "ms", 0.001, 0, 0, 3, 2
idleRpmPid_pFactor = scalar, F32, 1448, "", 1, 0, -10000, 10000, 4
idleRpmPid_iFactor = scalar, F32, 1452, "", 1, 0, -10000, 10000, 4
idleRpmPid_dFactor = scalar, F32, 1456, "", 1, 0, -10000, 10000, 4
idleRpmPid_offset = scalar, S16, 1460, "", 1, 0, -1000, 1000, 0
idleRpmPid_periodMs = scalar, S16, 1462, "ms", 1, 0, 0, 3000, 0
idleRpmPid_minValue = scalar, S16, 1464, "", 1, 0, -30000, 30000, 0
idleRpmPid_maxValue = scalar, S16, 1466, "", 1, 0, -30000, 30000, 0
wwaeBeta = scalar, F32, 1468, "Fraction", 1, 0, 0, 1, 2
binarySerialTxPin = bits, U16, 1472, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
binarySerialRxPin = bits, U16, 1474, [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"
auxValves1 = bits, U16, 1476, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
auxValves2 = bits, U16, 1478, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
tcuUpshiftButtonPin = bits, U16, 1480, [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"
tcuDownshiftButtonPin = bits, U16, 1482, [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"
throttlePedalUpVoltage = scalar, F32, 1484, "voltage", 1, 0, -6, 6, 2
throttlePedalWOTVoltage = scalar, F32, 1488, "voltage", 1, 0, -6, 6, 2
startUpFuelPumpDuration = scalar, S16, 1492, "seconds", 1, 0, 0, 6000, 0
idlePidRpmDeadZone = scalar, S16, 1494, "RPM", 1, 0, 0, 800, 0
targetVBatt = scalar, F32, 1496, "Volts", 1, 0, 0, 30, 1
alternatorOffAboveTps = scalar, F32, 1500, "%", 1, 0, 0, 200, 2
afterCrankingIACtaperDuration = scalar, S16, 1504, "cycles", 1, 0, 0, 5000, 0
iacByTpsTaper = scalar, S16, 1506, "percent", 1, 0, 0, 500, 0
auxSerialTxPin = bits, U16, 1508, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
auxSerialRxPin = bits, U16, 1510, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
LIS302DLCsPin = bits, U16, 1512, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
tpsAccelLookback = scalar, U08, 1514, "sec", 0.05, 0, 0, 5, 2
coastingFuelCutVssLow = scalar, U08, 1515, "kph", 1, 0, 0, 255, 0
coastingFuelCutVssHigh = scalar, U08, 1516, "kph", 1, 0, 0, 255, 0
noFuelTrimAfterDfcoTime = scalar, U08, 1517, "sec", 0.1, 0, 0, 10, 1
tpsAccelEnrichmentThreshold = scalar, F32, 1520, "roc", 1, 0, 0, 200, 1
auxSpeedSensorInputPin1 = bits, U16, 1524, [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"
auxSpeedSensorInputPin2 = bits, U16, 1526, [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"
totalGearsCount = scalar, U08, 1528, "", 1, 0, 1, 8, 0
injectionTimingMode = bits, U08, 1529, [0:1], "End of injection", "Start of injection", "Center of injection"
debugMode = bits, U08, 1530, [0:5], "INVALID", "TPS acceleration enrichment", "INVALID", "Stepper Idle Control", "Engine Load accl enrich", "Trigger Counters", "Soft Spark Cut", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "SD card", "sr5", "Knock", "INVALID", "Electronic Throttle", "Executor", "Bench Test / TS commands", "INVALID", "Analog inputs #1", "INSTANT_RPM", "INVALID", "Status", "INVALID", "INVALID", "MAP", "Metrics", "INVALID", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "INVALID", "Boost Control", "INVALID", "INVALID", "ETB Autotune", "Composite Log", "INVALID", "INVALID", "INVALID", "Dyno_View", "Logic_Analyzer", "INVALID", "TCU", "Lua"
fan1ExtraIdle = scalar, U08, 1531, "%", 1, 0, 0, 100, 0
uartConsoleSerialSpeed = scalar, U32, 1532, "BPs", 1, 0, 0, 1000000, 0
tpsDecelEnleanmentThreshold = scalar, F32, 1536, "roc", 1, 0, 0, 200, 1
tpsDecelEnleanmentMultiplier = scalar, F32, 1540, "coeff", 1, 0, 0, 200, 2
auxSerialSpeed = scalar, U32, 1544, "BPs", 1, 0, 0, 1000000, 0
throttlePedalSecondaryUpVoltage = scalar, F32, 1548, "voltage", 1, 0, -6, 6, 2
throttlePedalSecondaryWOTVoltage = scalar, F32, 1552, "voltage", 1, 0, -6, 6, 2
canBaudRate = bits, U08, 1556, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps"
veOverrideMode = bits, U08, 1557, [0:1], "None", "MAP", "TPS"
can2BaudRate = bits, U08, 1558, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps"
afrOverrideMode = bits, U08, 1559, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %"
mc33_hpfp_i_peak = scalar, U08, 1560, "A", 0.1, 0, 0, 25, 1
mc33_hpfp_i_hold = scalar, U08, 1561, "A", 0.1, 0, 0, 25, 1
mc33_hpfp_i_hold_off = scalar, U08, 1562, "us", 1, 0, 0, 255, 0
mc33_hpfp_max_hold = scalar, U08, 1563, "ms", 1, 0, 0, 255, 0
stepperDcInvertedPins = bits, U32, 1564, [0:0], "false", "true"
canOpenBLT = bits, U32, 1564, [1:1], "false", "true"
can2OpenBLT = bits, U32, 1564, [2:2], "false", "true"
injectorFlowAsMassFlow = bits, U32, 1564, [3:3], "volumetric flow", "mass flow"
boardUseCanTerminator = bits, U32, 1564, [4:4], "false", "true"
kLineDoHondaSend = bits, U32, 1564, [5:5], "false", "true"
unused1129 = bits, U32, 1564, [6:6], "false", "true"
unused1130 = bits, U32, 1564, [7:7], "false", "true"
unusedHere = scalar, U08, 1568, "", 1, 0, 0, 100, 0
benchTestOnTime = scalar, U16, 1570, "ms", 0.01, 0, 0, 100, 2
launchActivatePinMode = bits, U08, 1572, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
can2TxPin = bits, U16, 1574, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
can2RxPin = bits, U16, 1576, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
starterControlPinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted"
wastegatePositionSensor = bits, U08, 1579, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
ignOverrideMode = bits, U08, 1580, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %"
injectorPressureType = bits, U08, 1581, [0:0], "Low", "High"
hpfpValvePin = bits, U16, 1582, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
hpfpValvePinMode = bits, U08, 1584, [0:1], "default", "default inverted", "open collector", "open collector inverted"
boostCutPressure = scalar, F32, 1588, "kPa (absolute)", 1, 0, 0, 1000, 0
tchargeBins = array, U08, 1592, [16], "kg/h", 5.0, 0, 0, 1200, 0
tchargeValues = array, U08, 1608, [16], "ratio", 0.01, 0, 0, 1, 2
fixedTiming = scalar, F32, 1624, "deg", 1, 0, -720, 720, 2
mapLowValueVoltage = scalar, F32, 1628, "v", 1, 0, 0, 10, 2
mapHighValueVoltage = scalar, F32, 1632, "v", 1, 0, 0, 10, 2
egoValueShift = scalar, F32, 1636, "value", 1, 0, -10, 10, 2
vvtPins1 = bits, U16, 1640, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
vvtPins2 = bits, U16, 1642, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
vvtPins3 = bits, U16, 1644, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
vvtPins4 = bits, U16, 1646, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
sdCardCsPinMode = bits, U08, 1648, [0:1], "default", "default inverted", "open collector", "open collector inverted"
crankingIACposition = scalar, S32, 1652, "percent", 1, 0, -100, 100, 0
tChargeMinRpmMinTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4
tChargeMinRpmMaxTps = scalar, F32, 1660, "", 1, 0, 0, 3, 4
tChargeMaxRpmMinTps = scalar, F32, 1664, "", 1, 0, 0, 3, 4
tChargeMaxRpmMaxTps = scalar, F32, 1668, "", 1, 0, 0, 3, 4
vvtOutputFrequency1 = scalar, U16, 1672, "Hz", 1, 0, 0, 3000, 0
vvtOutputFrequency2 = scalar, U16, 1674, "Hz", 1, 0, 0, 3000, 0
alternatorPwmFrequency = scalar, S32, 1676, "Hz", 1, 0, 0, 3000, 0
vvtMode1 = bits, U08, 1680, [0:5], "Inactive", "Single Tooth Second Half", "2JZ", "Miata NB2", "Single Tooth First Half", "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"
vvtMode2 = bits, U08, 1681, [0:5], "Inactive", "Single Tooth Second Half", "2JZ", "Miata NB2", "Single Tooth First Half", "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"
fan2ExtraIdle = scalar, U08, 1682, "%", 1, 0, 0, 100, 0
primingDelay = scalar, U08, 1683, "sec", 0.01, 0, 0, 1, 2
auxAnalogInputs1 = bits, U08, 1684, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxAnalogInputs2 = bits, U08, 1685, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxAnalogInputs3 = bits, U08, 1686, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxAnalogInputs4 = bits, U08, 1687, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxAnalogInputs5 = bits, U08, 1688, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxAnalogInputs6 = bits, U08, 1689, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxAnalogInputs7 = bits, U08, 1690, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxAnalogInputs8 = bits, U08, 1691, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
trailingCoilPins1 = bits, U16, 1692, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins2 = bits, U16, 1694, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins3 = bits, U16, 1696, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins4 = bits, U16, 1698, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins5 = bits, U16, 1700, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins6 = bits, U16, 1702, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins7 = bits, U16, 1704, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins8 = bits, U16, 1706, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins9 = bits, U16, 1708, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins10 = bits, U16, 1710, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins11 = bits, U16, 1712, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
trailingCoilPins12 = bits, U16, 1714, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tle8888mode = bits, U08, 1716, [0:1], "Auto", "SemiAuto", "Manual", "Hall"
LIS302DLCsPinMode = bits, U08, 1717, [0:1], "default", "default inverted", "open collector", "open collector inverted"
injectorCompensationMode = bits, U08, 1718, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure"
fan2PinMode = bits, U08, 1719, [0:1], "default", "default inverted", "open collector", "open collector inverted"
fuelReferencePressure = scalar, F32, 1720, "kPa", 1, 0, 50, 700000, 0
postCrankingFactor = scalar, F32, 1724, "mult", 1, 0, 1, 3, 2
postCrankingDurationSec = scalar, F32, 1728, "seconds", 1, 0, 0, 30, 0
auxTempSensor1_tempC_1 = scalar, F32, 1732, "*C", 1, 0, -40, 200, 1
auxTempSensor1_tempC_2 = scalar, F32, 1736, "*C", 1, 0, -40, 200, 1
auxTempSensor1_tempC_3 = scalar, F32, 1740, "*C", 1, 0, -40, 200, 1
auxTempSensor1_resistance_1 = scalar, F32, 1744, "Ohm", 1, 0, 0, 200000, 1
auxTempSensor1_resistance_2 = scalar, F32, 1748, "Ohm", 1, 0, 0, 200000, 1
auxTempSensor1_resistance_3 = scalar, F32, 1752, "Ohm", 1, 0, 0, 200000, 1
auxTempSensor1_bias_resistor = scalar, F32, 1756, "Ohm", 1, 0, 0, 200000, 1
auxTempSensor1_adcChannel = bits, U08, 1760, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxTempSensor2_tempC_1 = scalar, F32, 1764, "*C", 1, 0, -40, 200, 1
auxTempSensor2_tempC_2 = scalar, F32, 1768, "*C", 1, 0, -40, 200, 1
auxTempSensor2_tempC_3 = scalar, F32, 1772, "*C", 1, 0, -40, 200, 1
auxTempSensor2_resistance_1 = scalar, F32, 1776, "Ohm", 1, 0, 0, 200000, 1
auxTempSensor2_resistance_2 = scalar, F32, 1780, "Ohm", 1, 0, 0, 200000, 1
auxTempSensor2_resistance_3 = scalar, F32, 1784, "Ohm", 1, 0, 0, 200000, 1
auxTempSensor2_bias_resistor = scalar, F32, 1788, "Ohm", 1, 0, 0, 200000, 1
auxTempSensor2_adcChannel = bits, U08, 1792, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
knockSamplingDuration = scalar, S16, 1796, "Deg", 1, 0, 0, 720, 0
etbFreq = scalar, S16, 1798, "Hz", 1, 0, 0, 3000, 0
etbWastegatePid_pFactor = scalar, F32, 1800, "", 1, 0, -10000, 10000, 4
etbWastegatePid_iFactor = scalar, F32, 1804, "", 1, 0, -10000, 10000, 4
etbWastegatePid_dFactor = scalar, F32, 1808, "", 1, 0, -10000, 10000, 4
etbWastegatePid_offset = scalar, S16, 1812, "", 1, 0, -1000, 1000, 0
etbWastegatePid_periodMs = scalar, S16, 1814, "ms", 1, 0, 0, 3000, 0
etbWastegatePid_minValue = scalar, S16, 1816, "", 1, 0, -30000, 30000, 0
etbWastegatePid_maxValue = scalar, S16, 1818, "", 1, 0, -30000, 30000, 0
stepperNumMicroSteps = bits, U08, 1820, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step"
stepperMinDutyCycle = scalar, U08, 1821, "%", 1, 0, 0, 100, 0
stepperMaxDutyCycle = scalar, U08, 1822, "%", 1, 0, 0, 100, 0
sdCardSpiDevice = bits, U08, 1823, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
timing_offset_cylinder1 = scalar, F32, 1824, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder2 = scalar, F32, 1828, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder3 = scalar, F32, 1832, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder4 = scalar, F32, 1836, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder5 = scalar, F32, 1840, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder6 = scalar, F32, 1844, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder7 = scalar, F32, 1848, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder8 = scalar, F32, 1852, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder9 = scalar, F32, 1856, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder10 = scalar, F32, 1860, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder11 = scalar, F32, 1864, "deg", 1, 0, -720, 720, 1
timing_offset_cylinder12 = scalar, F32, 1868, "deg", 1, 0, -720, 720, 1
idlePidActivationTime = scalar, F32, 1872, "seconds", 1, 0, 0, 60, 1
spi1SckMode = bits, U08, 1876, [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"
spi1MosiMode = bits, U08, 1877, [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"
spi1MisoMode = bits, U08, 1878, [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"
spi2SckMode = bits, U08, 1879, [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"
spi2MosiMode = bits, U08, 1880, [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"
spi2MisoMode = bits, U08, 1881, [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"
spi3SckMode = bits, U08, 1882, [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"
spi3MosiMode = bits, U08, 1883, [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"
spi3MisoMode = bits, U08, 1884, [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"
stepperEnablePinMode = bits, U08, 1885, [0:1], "default", "default inverted", "open collector", "open collector inverted"
mc33816_rstb = bits, U16, 1886, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
mc33816_driven = bits, U16, 1888, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
brakePedalPin = bits, U16, 1890, [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"
brakePedalPinMode = bits, U08, 1892, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
auxPid1_pFactor = scalar, F32, 1896, "", 1, 0, -10000, 10000, 4
auxPid1_iFactor = scalar, F32, 1900, "", 1, 0, -10000, 10000, 4
auxPid1_dFactor = scalar, F32, 1904, "", 1, 0, -10000, 10000, 4
auxPid1_offset = scalar, S16, 1908, "", 1, 0, -1000, 1000, 0
auxPid1_periodMs = scalar, S16, 1910, "ms", 1, 0, 0, 3000, 0
auxPid1_minValue = scalar, S16, 1912, "", 1, 0, -30000, 30000, 0
auxPid1_maxValue = scalar, S16, 1914, "", 1, 0, -30000, 30000, 0
auxPid2_pFactor = scalar, F32, 1916, "", 1, 0, -10000, 10000, 4
auxPid2_iFactor = scalar, F32, 1920, "", 1, 0, -10000, 10000, 4
auxPid2_dFactor = scalar, F32, 1924, "", 1, 0, -10000, 10000, 4
auxPid2_offset = scalar, S16, 1928, "", 1, 0, -1000, 1000, 0
auxPid2_periodMs = scalar, S16, 1930, "ms", 1, 0, 0, 3000, 0
auxPid2_minValue = scalar, S16, 1932, "", 1, 0, -30000, 30000, 0
auxPid2_maxValue = scalar, S16, 1934, "", 1, 0, -30000, 30000, 0
injectorCorrectionPolynomial1 = scalar, F32, 1936, "", 1, 0, -1000, 1000, 4
injectorCorrectionPolynomial2 = scalar, F32, 1940, "", 1, 0, -1000, 1000, 4
injectorCorrectionPolynomial3 = scalar, F32, 1944, "", 1, 0, -1000, 1000, 4
injectorCorrectionPolynomial4 = scalar, F32, 1948, "", 1, 0, -1000, 1000, 4
injectorCorrectionPolynomial5 = scalar, F32, 1952, "", 1, 0, -1000, 1000, 4
injectorCorrectionPolynomial6 = scalar, F32, 1956, "", 1, 0, -1000, 1000, 4
injectorCorrectionPolynomial7 = scalar, F32, 1960, "", 1, 0, -1000, 1000, 4
injectorCorrectionPolynomial8 = scalar, F32, 1964, "", 1, 0, -1000, 1000, 4
primeBins = array, S08, 1968, [8], "C", 1, 0, -40, 120, 0
oilPressure_hwChannel = bits, U08, 1976, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
oilPressure_v1 = scalar, F32, 1980, "volts", 1, 0, 0, 10, 2
oilPressure_value1 = scalar, F32, 1984, "kPa", 1, 0, 0, 1000000, 2
oilPressure_v2 = scalar, F32, 1988, "volts", 1, 0, 0, 10, 2
oilPressure_value2 = scalar, F32, 1992, "kPa", 1, 0, 0, 1000000, 2
accelerometerSpiDevice = bits, U08, 1996, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
fan2Pin = bits, U16, 1998, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
fan2OnTemperature = scalar, U08, 2000, "deg C", 1, 0, 0, 150, 0
fan2OffTemperature = scalar, U08, 2001, "deg C", 1, 0, 0, 150, 0
stepperEnablePin = bits, U16, 2002, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
tle8888_cs = bits, U16, 2004, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
tle8888_csPinMode = bits, U08, 2006, [0:1], "default", "default inverted", "open collector", "open collector inverted"
mc33816_cs = bits, U16, 2008, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15"
auxFrequencyFilter = scalar, F32, 2012, "", 1, 0, 0, 100, 0
vvtControlMinRpm = scalar, S16, 2016, "RPM", 1, 0, 0, 3000, 0
sentInputPins1 = bits, U16, 2018, [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"
launchFuelAdderPercent = scalar, S08, 2020, "", 1, 0, 0, 100, 0
etbJamTimeout = scalar, U08, 2021, "sec", 0.02, 0, 0, 5, 2
etbExpAverageLength = scalar, U16, 2022, "", 1, 0, 0, 32000, 0
etbDutyThreshold = scalar, F32, 2024, "", 1, 0, 0, 100, 0
coastingFuelCutRpmHigh = scalar, S16, 2028, "rpm", 1, 0, 0, 5000, 0
coastingFuelCutRpmLow = scalar, S16, 2030, "rpm", 1, 0, 0, 5000, 0
coastingFuelCutTps = scalar, S16, 2032, "%", 1, 0, 0, 20, 0
coastingFuelCutClt = scalar, S16, 2034, "C", 1, 0, -100, 100, 0
pidExtraForLowRpm = scalar, S16, 2036, "%", 1, 0, 0, 100, 0
coastingFuelCutMap = scalar, S16, 2038, "kPa", 1, 0, 0, 250, 0
highPressureFuel_hwChannel = bits, U08, 2040, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
highPressureFuel_v1 = scalar, F32, 2044, "volts", 1, 0, 0, 10, 2
highPressureFuel_value1 = scalar, F32, 2048, "kPa", 1, 0, 0, 1000000, 2
highPressureFuel_v2 = scalar, F32, 2052, "volts", 1, 0, 0, 10, 2
highPressureFuel_value2 = scalar, F32, 2056, "kPa", 1, 0, 0, 1000000, 2
lowPressureFuel_hwChannel = bits, U08, 2060, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
lowPressureFuel_v1 = scalar, F32, 2064, "volts", 1, 0, 0, 10, 2
lowPressureFuel_value1 = scalar, F32, 2068, "kPa", 1, 0, 0, 1000000, 2
lowPressureFuel_v2 = scalar, F32, 2072, "volts", 1, 0, 0, 10, 2
lowPressureFuel_value2 = scalar, F32, 2076, "kPa", 1, 0, 0, 1000000, 2
cltRevLimitRpmBins = array, S08, 2080, [4], "C", 1, 0, -40, 120, 0
cltRevLimitRpm = array, U16, 2084, [4], "RPM", 1, 0, 0, 20000, 0
scriptCurveName1 = string, ASCII, 2092, 16
scriptCurveName2 = string, ASCII, 2108, 16
scriptCurveName3 = string, ASCII, 2124, 16
scriptCurveName4 = string, ASCII, 2140, 16
scriptCurveName5 = string, ASCII, 2156, 16
scriptCurveName6 = string, ASCII, 2172, 16
scriptTableName1 = string, ASCII, 2188, 16
scriptTableName2 = string, ASCII, 2204, 16
scriptTableName3 = string, ASCII, 2220, 16
scriptTableName4 = string, ASCII, 2236, 16
scriptSettingName1 = string, ASCII, 2252, 16
scriptSettingName2 = string, ASCII, 2268, 16
scriptSettingName3 = string, ASCII, 2284, 16
scriptSettingName4 = string, ASCII, 2300, 16
scriptSettingName5 = string, ASCII, 2316, 16
scriptSettingName6 = string, ASCII, 2332, 16
scriptSettingName7 = string, ASCII, 2348, 16
scriptSettingName8 = string, ASCII, 2364, 16
tChargeAirCoefMin = scalar, F32, 2380, "", 1, 0, 0, 1, 3
tChargeAirCoefMax = scalar, F32, 2384, "", 1, 0, 0, 1, 3
tChargeAirFlowMax = scalar, F32, 2388, "kg/h", 1, 0, 0, 1000, 1
tChargeAirIncrLimit = scalar, F32, 2392, "deg/sec", 1, 0, 0, 100, 1
tChargeAirDecrLimit = scalar, F32, 2396, "deg/sec", 1, 0, 0, 100, 1
tChargeMode = bits, U08, 2400, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table"
hip9011Gain = scalar, F32, 2404, "", 1, 0, 0, 100, 2
etb_iTermMin = scalar, S16, 2408, "", 1, 0, -30000, 30000, 0
etb_iTermMax = scalar, S16, 2410, "", 1, 0, -30000, 30000, 0
idleTimingPid_pFactor = scalar, F32, 2412, "", 1, 0, -10000, 10000, 4
idleTimingPid_iFactor = scalar, F32, 2416, "", 1, 0, -10000, 10000, 4
idleTimingPid_dFactor = scalar, F32, 2420, "", 1, 0, -10000, 10000, 4
idleTimingPid_offset = scalar, S16, 2424, "", 1, 0, -1000, 1000, 0
idleTimingPid_periodMs = scalar, S16, 2426, "ms", 1, 0, 0, 3000, 0
idleTimingPid_minValue = scalar, S16, 2428, "", 1, 0, -30000, 30000, 0
idleTimingPid_maxValue = scalar, S16, 2430, "", 1, 0, -30000, 30000, 0
etbRocExpAverageLength = scalar, S16, 2432, "", 1, 0, 0, 32000, 0
tpsAccelFractionPeriod = scalar, S16, 2434, "cycles", 1, 0, 0, 500, 0
tpsAccelFractionDivisor = scalar, F32, 2436, "coef", 1, 0, 0, 100, 2
tle8888spiDevice = bits, U08, 2440, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
mc33816spiDevice = bits, U08, 2441, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
idlerpmpid_iTermMin = scalar, S16, 2442, "", 1, 0, -30000, 30000, 0
tle6240spiDevice = bits, U08, 2444, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4"
stoichRatioPrimary = scalar, U08, 2445, ":1", 0.1, 0, 5, 25, 1
idlerpmpid_iTermMax = scalar, S16, 2446, "", 1, 0, -30000, 30000, 0
etbIdleThrottleRange = scalar, F32, 2448, "%", 1, 0, 0, 15, 0
cylinderBankSelect1 = scalar, U08, 2452, "", 1, 1, 1, 2, 0
cylinderBankSelect2 = scalar, U08, 2453, "", 1, 1, 1, 2, 0
cylinderBankSelect3 = scalar, U08, 2454, "", 1, 1, 1, 2, 0
cylinderBankSelect4 = scalar, U08, 2455, "", 1, 1, 1, 2, 0
cylinderBankSelect5 = scalar, U08, 2456, "", 1, 1, 1, 2, 0
cylinderBankSelect6 = scalar, U08, 2457, "", 1, 1, 1, 2, 0
cylinderBankSelect7 = scalar, U08, 2458, "", 1, 1, 1, 2, 0
cylinderBankSelect8 = scalar, U08, 2459, "", 1, 1, 1, 2, 0
cylinderBankSelect9 = scalar, U08, 2460, "", 1, 1, 1, 2, 0
cylinderBankSelect10 = scalar, U08, 2461, "", 1, 1, 1, 2, 0
cylinderBankSelect11 = scalar, U08, 2462, "", 1, 1, 1, 2, 0
cylinderBankSelect12 = scalar, U08, 2463, "", 1, 1, 1, 2, 0
primeValues = array, U08, 2464, [8], "mg", 5.0, 0, 0, 1250, 0
triggerCompCenterVolt = scalar, U08, 2472, "V", 0.02, 0, 0, 5.1, 2
triggerCompHystMin = scalar, U08, 2473, "V", 0.02, 0, 0, 5.1, 2
triggerCompHystMax = scalar, U08, 2474, "V", 0.02, 0, 0, 5.1, 2
triggerCompSensorSatRpm = scalar, U08, 2475, "RPM", 50.0, 0, 0, 12000, 0
idleRpmPid2_pFactor = scalar, F32, 2476, "", 1, 0, -10000, 10000, 4
idleRpmPid2_iFactor = scalar, F32, 2480, "", 1, 0, -10000, 10000, 4
idleRpmPid2_dFactor = scalar, F32, 2484, "", 1, 0, -10000, 10000, 4
idleRpmPid2_offset = scalar, S16, 2488, "", 1, 0, -1000, 1000, 0
idleRpmPid2_periodMs = scalar, S16, 2490, "ms", 1, 0, 0, 3000, 0
idleRpmPid2_minValue = scalar, S16, 2492, "", 1, 0, -30000, 30000, 0
idleRpmPid2_maxValue = scalar, S16, 2494, "", 1, 0, -30000, 30000, 0
canVssNbcType = bits, U08, 2496, [0:1], "BMW_e46", "W202", "Lua"
gppwm1_pin = bits, U16, 2500, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
gppwm1_dutyIfError = scalar, U08, 2502, "%", 1, 0, 0, 100, 0
gppwm1_pwmFrequency = scalar, U16, 2504, "hz", 1, 0, 0, 500, 0
gppwm1_onAboveDuty = scalar, U08, 2506, "%", 1, 0, 0, 100, 0
gppwm1_offBelowDuty = scalar, U08, 2507, "%", 1, 0, 0, 100, 0
gppwm1_loadAxis = bits, U08, 2508, [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)"
gppwm1_rpmAxis = bits, U08, 2509, [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)"
gppwm1_loadBins = array, S16, 2510, [8], "load", 0.1, 0, -1000, 1000, 1
gppwm1_rpmBins = array, S16, 2526, [8], "RPM", 1, 0, -30000, 30000, 0
gppwm1_table = array, U08, 2542, [8x8], "duty", 0.5, 0, 0, 100, 1
gppwm2_pin = bits, U16, 2608, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
gppwm2_dutyIfError = scalar, U08, 2610, "%", 1, 0, 0, 100, 0
gppwm2_pwmFrequency = scalar, U16, 2612, "hz", 1, 0, 0, 500, 0
gppwm2_onAboveDuty = scalar, U08, 2614, "%", 1, 0, 0, 100, 0
gppwm2_offBelowDuty = scalar, U08, 2615, "%", 1, 0, 0, 100, 0
gppwm2_loadAxis = bits, U08, 2616, [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)"
gppwm2_rpmAxis = bits, U08, 2617, [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)"
gppwm2_loadBins = array, S16, 2618, [8], "load", 0.1, 0, -1000, 1000, 1
gppwm2_rpmBins = array, S16, 2634, [8], "RPM", 1, 0, -30000, 30000, 0
gppwm2_table = array, U08, 2650, [8x8], "duty", 0.5, 0, 0, 100, 1
gppwm3_pin = bits, U16, 2716, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
gppwm3_dutyIfError = scalar, U08, 2718, "%", 1, 0, 0, 100, 0
gppwm3_pwmFrequency = scalar, U16, 2720, "hz", 1, 0, 0, 500, 0
gppwm3_onAboveDuty = scalar, U08, 2722, "%", 1, 0, 0, 100, 0
gppwm3_offBelowDuty = scalar, U08, 2723, "%", 1, 0, 0, 100, 0
gppwm3_loadAxis = bits, U08, 2724, [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)"
gppwm3_rpmAxis = bits, U08, 2725, [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)"
gppwm3_loadBins = array, S16, 2726, [8], "load", 0.1, 0, -1000, 1000, 1
gppwm3_rpmBins = array, S16, 2742, [8], "RPM", 1, 0, -30000, 30000, 0
gppwm3_table = array, U08, 2758, [8x8], "duty", 0.5, 0, 0, 100, 1
gppwm4_pin = bits, U16, 2824, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
gppwm4_dutyIfError = scalar, U08, 2826, "%", 1, 0, 0, 100, 0
gppwm4_pwmFrequency = scalar, U16, 2828, "hz", 1, 0, 0, 500, 0
gppwm4_onAboveDuty = scalar, U08, 2830, "%", 1, 0, 0, 100, 0
gppwm4_offBelowDuty = scalar, U08, 2831, "%", 1, 0, 0, 100, 0
gppwm4_loadAxis = bits, U08, 2832, [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)"
gppwm4_rpmAxis = bits, U08, 2833, [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)"
gppwm4_loadBins = array, S16, 2834, [8], "load", 0.1, 0, -1000, 1000, 1
gppwm4_rpmBins = array, S16, 2850, [8], "RPM", 1, 0, -30000, 30000, 0
gppwm4_table = array, U08, 2866, [8x8], "duty", 0.5, 0, 0, 100, 1
mc33_i_boost = scalar, U16, 2932, "mA", 1, 0, 1000, 25000, 0
mc33_i_peak = scalar, U16, 2934, "mA", 1, 0, 1000, 20000, 0
mc33_i_hold = scalar, U16, 2936, "mA", 1, 0, 1000, 20000, 0
mc33_t_max_boost = scalar, U16, 2938, "us", 1, 0, 0, 10000, 0
mc33_t_peak_off = scalar, U16, 2940, "us", 1, 0, 0, 10000, 0
mc33_t_peak_tot = scalar, U16, 2942, "us", 1, 0, 0, 10000, 0
mc33_t_bypass = scalar, U16, 2944, "us", 1, 0, 0, 10000, 0
mc33_t_hold_off = scalar, U16, 2946, "us", 1, 0, 0, 10000, 0
mc33_t_hold_tot = scalar, U16, 2948, "us", 1, 0, 0, 10000, 0
tcuUpshiftButtonPinMode = bits, U08, 2950, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
tcuDownshiftButtonPinMode = bits, U08, 2951, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
acSwitchMode = bits, U08, 2952, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
tcu_solenoid_mode1 = bits, U08, 2953, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_solenoid_mode2 = bits, U08, 2954, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_solenoid_mode3 = bits, U08, 2955, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_solenoid_mode4 = bits, U08, 2956, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_solenoid_mode5 = bits, U08, 2957, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_solenoid_mode6 = bits, U08, 2958, [0:1], "default", "default inverted", "open collector", "open collector inverted"
knockBaseNoise = array, S08, 2959, [16], "dB", 0.5, 0, -50, 10, 1
triggerGapOverrideFrom1 = scalar, F32, 2976, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom2 = scalar, F32, 2980, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom3 = scalar, F32, 2984, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom4 = scalar, F32, 2988, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom5 = scalar, F32, 2992, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom6 = scalar, F32, 2996, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom7 = scalar, F32, 3000, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom8 = scalar, F32, 3004, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom9 = scalar, F32, 3008, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom10 = scalar, F32, 3012, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom11 = scalar, F32, 3016, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom12 = scalar, F32, 3020, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom13 = scalar, F32, 3024, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom14 = scalar, F32, 3028, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom15 = scalar, F32, 3032, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom16 = scalar, F32, 3036, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom17 = scalar, F32, 3040, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideFrom18 = scalar, F32, 3044, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo1 = scalar, F32, 3048, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo2 = scalar, F32, 3052, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo3 = scalar, F32, 3056, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo4 = scalar, F32, 3060, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo5 = scalar, F32, 3064, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo6 = scalar, F32, 3068, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo7 = scalar, F32, 3072, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo8 = scalar, F32, 3076, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo9 = scalar, F32, 3080, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo10 = scalar, F32, 3084, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo11 = scalar, F32, 3088, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo12 = scalar, F32, 3092, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo13 = scalar, F32, 3096, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo14 = scalar, F32, 3100, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo15 = scalar, F32, 3104, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo16 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo17 = scalar, F32, 3112, "ratio", 1, 0, 0, 20, 3
triggerGapOverrideTo18 = scalar, F32, 3116, "ratio", 1, 0, 0, 20, 3
maxCamPhaseResolveRpm = scalar, U08, 3120, "rpm", 50.0, 0, 0, 12500, 0
dfcoDelay = scalar, U08, 3121, "sec", 0.1, 0, 0, 10, 1
acDelay = scalar, U08, 3122, "sec", 0.1, 0, 0, 10, 1
fordInjectorSmallPulseBreakPoint = scalar, U16, 3124, "mg", 0.001, 0, 0, 65, 3
tpsTspCorrValues = array, U08, 3126, [4], "multiplier", 0.02, 0, 0, 5, 2
etbJamIntegratorLimit = scalar, U08, 3130, "%", 1, 0, 0, 50, 0
hpfpCamLobes = scalar, U08, 3131, "lobes/cam", 1, 0, 0, 255, 0
hpfpCam = bits, U08, 3132, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2"
auxiliarySetting1 = scalar, U08, 3133, "", 1, 0, 0, 100, 0
hpfpMinAngle = scalar, U08, 3134, "deg", 1, 0, 0, 255, 0
hpfpPumpVolume = scalar, U16, 3136, "cc", 0.001, 0, 0, 65, 3
hpfpActivationAngle = scalar, U08, 3138, "deg", 1, 0, 0, 255, 0
issFilterReciprocal = scalar, U08, 3139, "", 1, 0, 0, 100, 0
hpfpPidP = scalar, U16, 3140, "%/kPa", 0.001, 0, 0, 65, 3
hpfpPidI = scalar, U16, 3142, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5
hpfpTargetDecay = scalar, U16, 3144, "kPa/s", 1, 0, 0, 65000, 0
hpfpLobeProfileQuantityBins = array, U08, 3146, [16], "%", 0.5, 0, 0, 100, 1
hpfpLobeProfileAngle = array, U08, 3162, [16], "deg", 0.5, 0, 0, 125, 1
hpfpDeadtimeVoltsBins = array, U08, 3178, [8], "volts", 1, 0, 0, 255, 0
hpfpDeadtimeMS = array, U16, 3186, [8], "ms", 0.001, 0, 0, 65, 3
hpfpTarget = array, U16, 3202, [10x10], "kPa", 1, 0, 0, 65000, 0
hpfpTargetLoadBins = array, U16, 3402, [10], "load", 0.1, 0, 0, 6500, 1
hpfpTargetRpmBins = array, U08, 3422, [10], "RPM", 50.0, 0, 0, 12500, 0
hpfpCompensation = array, S08, 3432, [10x10], "%", 1, 0, -100, 100, 0
hpfpCompensationLoadBins = array, U16, 3532, [10], "cc/lobe", 0.001, 0, 0, 65, 3
hpfpCompensationRpmBins = array, U08, 3552, [10], "RPM", 50.0, 0, 0, 12500, 0
stepper_raw_output1 = bits, U16, 3562, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
stepper_raw_output2 = bits, U16, 3564, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
stepper_raw_output3 = bits, U16, 3566, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
stepper_raw_output4 = bits, U16, 3568, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
gearRatio1 = scalar, U16, 3570, "ratio", 0.01, 0, 0, 10, 2
gearRatio2 = scalar, U16, 3572, "ratio", 0.01, 0, 0, 10, 2
gearRatio3 = scalar, U16, 3574, "ratio", 0.01, 0, 0, 10, 2
gearRatio4 = scalar, U16, 3576, "ratio", 0.01, 0, 0, 10, 2
gearRatio5 = scalar, U16, 3578, "ratio", 0.01, 0, 0, 10, 2
gearRatio6 = scalar, U16, 3580, "ratio", 0.01, 0, 0, 10, 2
gearRatio7 = scalar, U16, 3582, "ratio", 0.01, 0, 0, 10, 2
gearRatio8 = scalar, U16, 3584, "ratio", 0.01, 0, 0, 10, 2
vvtActivationDelayMs = scalar, U16, 3586, "ms", 1, 0, 0, 65000, 0
wwCltBins = array, S08, 3588, [8], "deg C", 1, 0, -40, 120, 0
wwTauCltValues = array, U08, 3596, [8], "", 0.01, 0, 0, 2.5, 2
wwBetaCltValues = array, U08, 3604, [8], "", 0.01, 0, 0, 1, 2
wwMapBins = array, S08, 3612, [8], "kPa", 1, 0, 0, 250, 0
wwTauMapValues = array, U08, 3620, [8], "", 0.01, 0, 0, 2.5, 2
wwBetaMapValues = array, U08, 3628, [8], "", 0.01, 0, 0, 2.5, 2
torqueTable = array, U08, 3636, [6x6], "Nm", 10.0, 0, 0, 255, 0
torqueRpmBins = array, U16, 3672, [6], "RPM", 1, 0, 0, 65000, 0
torqueLoadBins = array, U16, 3684, [6], "Load", 1, 0, 0, 65000, 0
gearControllerMode = bits, U08, 3696, [0:1], "None", "Button Shift"
transmissionControllerMode = bits, U08, 3697, [0:1], "None", "Simple Transmission", "GM 4L6X"
auxLinear1_hwChannel = bits, U08, 3700, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxLinear1_v1 = scalar, F32, 3704, "volts", 1, 0, 0, 10, 2
auxLinear1_value1 = scalar, F32, 3708, "kPa", 1, 0, 0, 1000000, 2
auxLinear1_v2 = scalar, F32, 3712, "volts", 1, 0, 0, 10, 2
auxLinear1_value2 = scalar, F32, 3716, "kPa", 1, 0, 0, 1000000, 2
auxLinear2_hwChannel = bits, U08, 3720, [0:5], 0="NONE",5="Battery Sense",11="Sense 1",12="Sense 2",13="Sense 3",14="Sense 4",15="Sense 5",16="Sense 6",9="Sense 7",10="Sense 8"
auxLinear2_v1 = scalar, F32, 3724, "volts", 1, 0, 0, 10, 2
auxLinear2_value1 = scalar, F32, 3728, "kPa", 1, 0, 0, 1000000, 2
auxLinear2_v2 = scalar, F32, 3732, "volts", 1, 0, 0, 10, 2
auxLinear2_value2 = scalar, F32, 3736, "kPa", 1, 0, 0, 1000000, 2
tcu_tcc_onoff_solenoid = bits, U16, 3740, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_tcc_onoff_solenoid_mode = bits, U08, 3742, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_tcc_pwm_solenoid = bits, U16, 3744, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_tcc_pwm_solenoid_mode = bits, U08, 3746, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_tcc_pwm_solenoid_freq = scalar, U16, 3748, "Hz", 1, 0, 0, 3000, 0
tcu_pc_solenoid_pin = bits, U16, 3750, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_pc_solenoid_pin_mode = bits, U08, 3752, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_pc_solenoid_freq = scalar, U16, 3754, "Hz", 1, 0, 0, 3000, 0
tcu_32_solenoid_pin = bits, U16, 3756, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8"
tcu_32_solenoid_pin_mode = bits, U08, 3758, [0:1], "default", "default inverted", "open collector", "open collector inverted"
tcu_32_solenoid_freq = scalar, U16, 3760, "Hz", 1, 0, 0, 3000, 0
etbMinimumPosition = scalar, F32, 3764, "%", 1, 0, 0.01, 100, 2
tuneHidingKey = scalar, U16, 3768, "", 1, 0, 0, 20000, 0
vinNumber = string, ASCII, 3770, 17
highSpeedOffsets = array, U16, 3788, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave
etbDutyShutdownThreshold = scalar, F32, 3852, "", 1, 0, 0, 100, 0
fuelPressureSensorMode = bits, U08, 3856, [0:1], "Absolute", "Gauge", "Differential", "INVALID"
luaDigitalInputPins1 = bits, U16, 3858, [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"
luaDigitalInputPins2 = bits, U16, 3860, [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"
luaDigitalInputPins3 = bits, U16, 3862, [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"
luaDigitalInputPins4 = bits, U16, 3864, [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"
luaDigitalInputPins5 = bits, U16, 3866, [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"
luaDigitalInputPins6 = bits, U16, 3868, [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"
luaDigitalInputPins7 = bits, U16, 3870, [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"
luaDigitalInputPins8 = bits, U16, 3872, [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"
tpsTspCorrValuesBins = array, U08, 3874, [4], "RPM", 50.0, 0, 0, 17500, 0
ALSMinRPM = scalar, S16, 3878, "rpm", 1, 0, 0, 20000, 0
ALSMaxRPM = scalar, S16, 3880, "rpm", 1, 0, 0, 20000, 0
ALSMaxDuration = scalar, S16, 3882, "sec", 1, 0, 0, 10, 0
ALSMinCLT = scalar, S08, 3884, "C", 1, 0, 0, 90, 0
ALSMaxCLT = scalar, S08, 3885, "C", 1, 0, 0, 105, 0
alsMinTimeBetween = scalar, U08, 3886, "", 1, 0, 0, 20000, 0
alsEtbPosition = scalar, U08, 3887, "", 1, 0, 0, 20000, 0
acRelayAlternatorDutyAdder = scalar, U08, 3888, "", 1, 0, 0, 100, 0
sentEtbType = bits, S08, 3889, [0:1], "None", "GM type 1", "Ford type 1", "Custom"
customSentTpsMin = scalar, U16, 3890, "", 1, 0, 0, 32000, 0
ALSIdleAdd = scalar, S32, 3892, "%", 1, 0, 0, 100, 2
ALSEtbAdd = scalar, S32, 3896, "%", 1, 0, 0, 100, 2
ALSSkipRatio = scalar, F32, 3900, "", 1, 0, 0, 1, 1
ALSMaxDriverThrottleIntent = scalar, U08, 3904, "%", 1, 0, 0, 10, 0
ALSActivatePinMode = bits, U08, 3905, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
tpsSecondaryMaximum = scalar, U08, 3906, "%", 0.5, 0, 0, 100, 1
ppsSecondaryMaximum = scalar, U08, 3907, "%", 0.5, 0, 0, 100, 1
luaDigitalInputPinModes1 = bits, U08, 3908, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
luaDigitalInputPinModes2 = bits, U08, 3909, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
luaDigitalInputPinModes3 = bits, U08, 3910, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
luaDigitalInputPinModes4 = bits, U08, 3911, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
luaDigitalInputPinModes5 = bits, U08, 3912, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
luaDigitalInputPinModes6 = bits, U08, 3913, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
luaDigitalInputPinModes7 = bits, U08, 3914, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
luaDigitalInputPinModes8 = bits, U08, 3915, [0:1], "DEFAULT", "PULLUP", "PULLDOWN"
customSentTpsMax = scalar, U16, 3916, "", 1, 0, 0, 32000, 0
kLineBaudRate = scalar, U16, 3918, "", 1, 0, 0, 32000, 0
canGpioType = bits, S08, 3920, [0:1], "None", "DRT protocol", "MS protocol"
uiMode = bits, S08, 3921, [0:1], "Full", "Installation", "Tuning"
hpfpPeakPos = scalar, S16, 3922, "deg", 1, 0, -719, 719, 0
kLinePeriodUs = scalar, S16, 3924, "us", 1, 0, 0, 30000, 0
rpmSoftLimitWindowSize = scalar, U08, 3926, "RPM", 10.0, 0, 0, 2500, 0
rpmSoftLimitTimingRetard = scalar, U08, 3927, "deg", 0.2, 0, 0, 50, 1
rpmSoftLimitFuelAdded = scalar, U08, 3928, "%", 0.2, 0, 0, 50, 1
rpmHardLimitHyst = scalar, U08, 3929, "RPM", 10.0, 0, 0, 2500, 0
benchTestOffTime = scalar, U16, 3930, "ms", 0.1, 0, 0, 2000, 1
boostCutPressureHyst = scalar, U08, 3932, "kPa (absolute)", 0.5, 0, 0, 125, 1
gearBasedOpenLoopBoostAdder = array, U08, 3933, [8], "%", 0.5, 0, 0, 100, 1
benchTestCount = scalar, U32, 3944, "", 1, 0, 0, 10000000, 0
mainUnusedEnd = array, U08, 3948, [16], "units", 1, 0, 0, 1, 0
etbBiasBins = array, F32, 3964, [8], "target TPS position", 1, 0, 0, 100, 0
etbBiasValues = array, F32, 3996, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2
iacPidMultTable = array, U08, 4028, [8x8], "%", 0.05, 0, 0, 10, 2
iacPidMultLoadBins = array, U08, 4092, [8], "Load", 1, 0, 0, 500, 2
iacPidMultRpmBins = array, U08, 4100, [8], "RPM", 10.0, 0, 0, 2500, 0
sparkDwellRpmBins = array, U16, 4108, [8], "RPM", 1, 0, 0, 25000, 0
sparkDwellValues = array, U16, 4124, [8], "ms", 0.01, 0, 0, 30, 2
cltIdleRpmBins = array, S08, 4140, [16], "C", 2.0, 0, -40, 200, 0
cltIdleRpm = array, U08, 4156, [16], "RPM", 20.0, 0, 0, 5000, 0
cltTimingBins = array, F32, 4172, [8], "C", 1, 0, -100, 250, 1
cltTimingExtra = array, F32, 4204, [8], "degree", 1, 0, -400, 400, 0
scriptCurve1Bins = array, F32, 4236, [16], "x", 1, 0, -10000, 10000, 3
scriptCurve1 = array, F32, 4300, [16], "y", 1, 0, -10000, 10000, 3
scriptCurve2Bins = array, F32, 4364, [16], "x", 1, 0, -10000, 10000, 3
scriptCurve2 = array, F32, 4428, [16], "y", 1, 0, -10000, 10000, 3
scriptCurve3Bins = array, F32, 4492, [8], "x", 1, 0, -10000, 10000, 3
scriptCurve3 = array, F32, 4524, [8], "y", 1, 0, -10000, 10000, 3
scriptCurve4Bins = array, F32, 4556, [8], "x", 1, 0, -10000, 10000, 3
scriptCurve4 = array, F32, 4588, [8], "y", 1, 0, -10000, 10000, 3
scriptCurve5Bins = array, F32, 4620, [8], "x", 1, 0, -10000, 10000, 3
scriptCurve5 = array, F32, 4652, [8], "y", 1, 0, -10000, 10000, 3
scriptCurve6Bins = array, F32, 4684, [8], "x", 1, 0, -10000, 10000, 3
scriptCurve6 = array, F32, 4716, [8], "y", 1, 0, -10000, 10000, 3
baroCorrPressureBins = array, F32, 4748, [4], "kPa", 1, 0, 0, 200, 2
baroCorrRpmBins = array, F32, 4764, [4], "RPM", 1, 0, 0, 18000, 0
baroCorrTable = array, F32, 4780, [4x4], "ratio", 1, 0, 0, 2, 2
crankingTpsCoef = array, F32, 4844, [8], "Ratio", 1, 0, 0, 700, 2
crankingTpsBins = array, F32, 4876, [8], "%", 1, 0, 0, 100, 2
narrowToWideOxygenBins = array, F32, 4908, [8], "V", 1, 0, -10, 10, 3
narrowToWideOxygen = array, F32, 4940, [8], "ratio", 1, 0, -40, 40, 2
crankingAdvanceBins = array, U16, 4972, [4], "RPM", 1, 0, 0, 25000, 0
crankingAdvance = array, S16, 4980, [4], "deg", 0.01, 0, -20, 90, 2
iacCoastingRpmBins = array, U08, 4988, [16], "RPM", 100.0, 0, 0, 25000, 0
iacCoasting = array, U08, 5004, [16], "%", 0.5, 0, 0, 100, 1
warning_message = string, ASCII, 5020, 120
afterstartCoolantBins = array, F32, 5140, [8], "C", 1, 0, -100, 250, 0
afterstartHoldTime = array, F32, 5172, [8], "Seconds", 1, 0, 0, 100, 1
afterstartEnrich = array, F32, 5204, [8], "%", 1, 0, 0, 600, 1
afterstartDecayTime = array, F32, 5236, [8], "Seconds", 1, 0, 0, 100, 1
boostTableOpenLoop = array, U08, 5268, [8x8], "", 0.5, 0, 0, 100, 1
boostRpmBins = array, U08, 5332, [8], "RPM", 100.0, 0, 0, 25000, 0
boostTableClosedLoop = array, U08, 5340, [8x8], "", 2.0, 0, 0, 3000, 0
boostTpsBins = array, U08, 5404, [8], "%", 1, 0, 0, 100, 0
pedalToTpsTable = array, U08, 5412, [8x8], "%", 1, 0, 0, 100, 0
pedalToTpsPedalBins = array, U08, 5476, [8], "%", 1, 0, 0, 120, 0
pedalToTpsRpmBins = array, U08, 5484, [8], "RPM", 100.0, 0, 0, 25000, 0
cltCrankingCorrBins = array, F32, 5492, [8], "C", 1, 0, -100, 250, 2
cltCrankingCorr = array, F32, 5524, [8], "%", 1, 0, 0, 500, 2
idleAdvanceBins = array, U08, 5556, [8], "RPM", 50.0, 0, 0, 12000, 0
idleAdvance = array, F32, 5564, [8], "deg", 1, 0, -20, 90, 1
idleVeRpmBins = array, U08, 5596, [4], "RPM", 10.0, 0, 0, 2500, 0
idleVeLoadBins = array, U08, 5600, [4], "load", 1, 0, 0, 100, 0
idleVeTable = array, U16, 5604, [4x4], "%", 0.1, 0, 0, 999, 1
luaScript = string, ASCII, 5636, 8000
cltFuelCorrBins = array, F32, 13636, [16], "C", 1, 0, -100, 250, 2
cltFuelCorr = array, F32, 13700, [16], "ratio", 1, 0, 0, 5, 2
iatFuelCorrBins = array, F32, 13764, [16], "C", 1, 0, -100, 250, 2
iatFuelCorr = array, F32, 13828, [16], "ratio", 1, 0, 0, 5, 2
crankingFuelCoef = array, F32, 13892, [8], "ratio", 1, 0, 0, 50, 2
crankingFuelBins = array, F32, 13924, [8], "C", 1, 0, -80, 170, 2
crankingCycleCoef = array, F32, 13956, [8], "ratio", 1, 0, 0, 5, 2
crankingCycleBins = array, F32, 13988, [8], "counter", 1, 0, -80, 170, 0
cltIdleCorrBins = array, F32, 14020, [16], "C", 1, 0, -100, 250, 2
cltIdleCorr = array, F32, 14084, [16], "ratio", 1, 0, 0, 10, 2
mafDecoding = array, F32, 14148, [256], "kg/hour", 1, 0, -500, 4000, 2
mafDecodingBins = array, F32, 15172, [256], "V", 1, 0, -5, 150, 2
ignitionIatCorrTable = array, S08, 16196, [8x8], "deg", 0.1, 0, -25, 25, 1
ignitionIatCorrTempBins = array, S08, 16260, [8], "C", 1, 0, -40, 120, 0
ignitionIatCorrLoadBins = array, U08, 16268, [8], "Load", 5.0, 0, 0, 1000, 0
injectionPhase = array, S16, 16276, [16x16], "deg", 1, 0, -720, 720, 0
injPhaseLoadBins = array, U16, 16788, [16], "Load", 1, 0, 0, 1000, 0
injPhaseRpmBins = array, U16, 16820, [16], "RPM", 1, 0, 0, 18000, 0
tcuSolenoidTable = array, U08, 16852, [6x10], "onoff", 1, 0, 0, 1, 0
mapEstimateTable = array, U16, 16912, [16x16], "kPa", 0.01, 0, 0, 600, 2
mapEstimateTpsBins = array, U16, 17424, [16], "% TPS", 0.01, 0, 0, 100, 1
mapEstimateRpmBins = array, U16, 17456, [16], "RPM", 1, 0, 0, 18000, 0
vvtTable1 = array, S08, 17488, [8x8], "value", 1, 0, -125, 125, 0
vvtTable1LoadBins = array, U16, 17552, [8], "L", 1, 0, 0, 1000, 0
vvtTable1RpmBins = array, U16, 17568, [8], "RPM", 1, 0, 0, 18000, 0
vvtTable2 = array, S08, 17584, [8x8], "value", 1, 0, -125, 125, 0
vvtTable2LoadBins = array, U16, 17648, [8], "L", 1, 0, 0, 1000, 0
vvtTable2RpmBins = array, U16, 17664, [8], "RPM", 1, 0, 0, 18000, 0
ignitionTable = array, S16, 17680, [16x16], "deg", 0.1, 0, -20, 90, 1
ignitionLoadBins = array, U16, 18192, [16], "Load", 1, 0, 0, 1000, 0
ignitionRpmBins = array, U16, 18224, [16], "RPM", 1, 0, 0, 18000, 0
veTable = array, U16, 18256, [16x16], "%", 0.1, 0, 0, 999, 1
veLoadBins = array, U16, 18768, [16], "kPa", 1, 0, 0, 1000, 0
veRpmBins = array, U16, 18800, [16], "RPM", 1, 0, 0, 18000, 0
#if LAMBDA
lambdaTable = array, U08, 18832, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2
#else
lambdaTable = array, U08, 18832, [16x16], "afr", 0.1, 0, 0, 25, 1
#endif
lambdaLoadBins = array, U16, 19088, [16], "", 1, 0, 0, 1000, 0
lambdaRpmBins = array, U16, 19120, [16], "RPM", 1, 0, 0, 18000, 0
tpsTpsAccelTable = array, F32, 19152, [8x8], "value", 1, 0, 0, 30000, 2
tpsTpsAccelFromRpmBins = array, F32, 19408, [8], "from", 1, 0, 0, 30000, 2
tpsTpsAccelToRpmBins = array, F32, 19440, [8], "to", 1, 0, 0, 25500, 2
scriptTable1 = array, F32, 19472, [8x8], "value", 1, 0, -100000, 100000, 2
scriptTable1LoadBins = array, S16, 19728, [8], "L", 1, 0, -32000, 32000, 0
scriptTable1RpmBins = array, S16, 19744, [8], "RPM", 1, 0, -32000, 32000, 0
scriptTable2 = array, U08, 19760, [8x8], "value", 1, 0, 0, 255, 0
scriptTable2LoadBins = array, S16, 19824, [8], "L", 1, 0, -32000, 32000, 0
scriptTable2RpmBins = array, S16, 19840, [8], "RPM", 1, 0, -32000, 32000, 0
scriptTable3 = array, U08, 19856, [8x8], "value", 1, 0, 0, 255, 0
scriptTable3LoadBins = array, S16, 19920, [8], "L", 1, 0, -32000, 32000, 0
scriptTable3RpmBins = array, S16, 19936, [8], "RPM", 1, 0, -32000, 32000, 0
scriptTable4 = array, U08, 19952, [8x8], "value", 1, 0, 0, 255, 0
scriptTable4LoadBins = array, S16, 20016, [8], "L", 1, 0, -32000, 32000, 0
scriptTable4RpmBins = array, S16, 20032, [8], "RPM", 1, 0, -32000, 32000, 0
ignTrimLoadBins = array, U16, 20048, [4], "", 1, 0, 0, 1000, 0
ignTrimRpmBins = array, U16, 20056, [4], "rpm", 1, 0, 0, 20000, 0
ignTrims1_table = array, S08, 20064, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims2_table = array, S08, 20080, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims3_table = array, S08, 20096, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims4_table = array, S08, 20112, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims5_table = array, S08, 20128, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims6_table = array, S08, 20144, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims7_table = array, S08, 20160, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims8_table = array, S08, 20176, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims9_table = array, S08, 20192, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims10_table = array, S08, 20208, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims11_table = array, S08, 20224, [4x4], "", 0.2, 0, -25, 25, 1
ignTrims12_table = array, S08, 20240, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrimLoadBins = array, U16, 20256, [4], "", 1, 0, 0, 1000, 0
fuelTrimRpmBins = array, U16, 20264, [4], "rpm", 1, 0, 0, 20000, 0
fuelTrims1_table = array, S08, 20272, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims2_table = array, S08, 20288, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims3_table = array, S08, 20304, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims4_table = array, S08, 20320, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims5_table = array, S08, 20336, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims6_table = array, S08, 20352, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims7_table = array, S08, 20368, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims8_table = array, S08, 20384, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims9_table = array, S08, 20400, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims10_table = array, S08, 20416, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims11_table = array, S08, 20432, [4x4], "", 0.2, 0, -25, 25, 1
fuelTrims12_table = array, S08, 20448, [4x4], "", 0.2, 0, -25, 25, 1
crankingFuelCoefE100 = array, U16, 20464, [8], "ratio", 0.01, 0, 0, 50, 2
tcu_pcAirmassBins = array, U08, 20480, [8], "Airmass", 0.02, 0, 0, 255, 2
tcu_pcValsR = array, U08, 20488, [8], "%", 1, 0, 0, 255, 0
tcu_pcValsN = array, U08, 20496, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals1 = array, U08, 20504, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals2 = array, U08, 20512, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals3 = array, U08, 20520, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals4 = array, U08, 20528, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals12 = array, U08, 20536, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals23 = array, U08, 20544, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals34 = array, U08, 20552, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals21 = array, U08, 20560, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals32 = array, U08, 20568, [8], "%", 1, 0, 0, 255, 0
tcu_pcVals43 = array, U08, 20576, [8], "%", 1, 0, 0, 255, 0
tcu_tccTpsBins = array, U08, 20584, [8], "TPS", 1, 0, 0, 255, 0
tcu_tccLockSpeed = array, U08, 20592, [8], "MPH", 1, 0, 0, 255, 0
tcu_tccUnlockSpeed = array, U08, 20600, [8], "MPH", 1, 0, 0, 255, 0
tcu_32SpeedBins = array, U08, 20608, [8], "KPH", 1, 0, 0, 255, 0
tcu_32Vals = array, U08, 20616, [8], "%", 1, 0, 0, 255, 0
throttle2TrimTable = array, S08, 20624, [6x6], "%", 0.1, 0, -10, 10, 1
throttle2TrimTpsBins = array, U08, 20660, [6], "%", 1, 0, 0, 120, 0
throttle2TrimRpmBins = array, U08, 20666, [6], "RPM", 100.0, 0, 0, 25000, 0
maxKnockRetardTable = array, U08, 20672, [6x6], "deg", 0.25, 0, 0, 30, 2
maxKnockRetardLoadBins = array, U08, 20708, [6], "%", 1, 0, 0, 250, 0
maxKnockRetardRpmBins = array, U08, 20714, [6], "RPM", 100.0, 0, 0, 25000, 0
ALSTimingRetardTable = array, S16, 20720, [4x4], "deg", 0.1, 0, -60, 0, 1
alsIgnRetardLoadBins = array, U16, 20752, [4], "TPS", 1, 0, 0, 100, 0
alsIgnRetardrpmBins = array, U16, 20760, [4], "RPM", 1, 0, 0, 25000, 0
ALSFuelAdjustment = array, S16, 20768, [4x4], "percent", 0.1, 0, 0, 50, 1
alsFuelAdjustmentLoadBins = array, U16, 20800, [4], "TPS", 1, 0, 0, 100, 0
alsFuelAdjustmentrpmBins = array, U16, 20808, [4], "RPM", 1, 0, 0, 25000, 0
ALSIgnSkipTable = array, S16, 20816, [4x4], "ratio", 10.0, 0, 0, 50, 1
alsIgnSkipLoadBins = array, U16, 20848, [4], "TPS", 1, 0, 0, 100, 0
alsIgnSkiprpmBins = array, U16, 20856, [4], "RPM", 1, 0, 0, 25000, 0
ignBlends1_table = array, S16, 20864, [8x8], "", 0.1, 0, -100, 100, 1
ignBlends1_loadBins = array, U16, 20992, [8], "Load", 1, 0, 0, 1000, 0
ignBlends1_rpmBins = array, U16, 21008, [8], "RPM", 1, 0, 0, 18000, 0
ignBlends1_blendParameter = bits, U08, 21024, [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)"
ignBlends1_blendBins = array, S16, 21026, [8], "", 0.1, 0, -1000, 1000, 1
ignBlends1_blendValues = array, U08, 21042, [8], "%", 0.5, 0, 0, 100, 1
ignBlends2_table = array, S16, 21052, [8x8], "", 0.1, 0, -100, 100, 1
ignBlends2_loadBins = array, U16, 21180, [8], "Load", 1, 0, 0, 1000, 0
ignBlends2_rpmBins = array, U16, 21196, [8], "RPM", 1, 0, 0, 18000, 0
ignBlends2_blendParameter = bits, U08, 21212, [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)"
ignBlends2_blendBins = array, S16, 21214, [8], "", 0.1, 0, -1000, 1000, 1
ignBlends2_blendValues = array, U08, 21230, [8], "%", 0.5, 0, 0, 100, 1
ignBlends3_table = array, S16, 21240, [8x8], "", 0.1, 0, -100, 100, 1
ignBlends3_loadBins = array, U16, 21368, [8], "Load", 1, 0, 0, 1000, 0
ignBlends3_rpmBins = array, U16, 21384, [8], "RPM", 1, 0, 0, 18000, 0
ignBlends3_blendParameter = bits, U08, 21400, [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)"
ignBlends3_blendBins = array, S16, 21402, [8], "", 0.1, 0, -1000, 1000, 1
ignBlends3_blendValues = array, U08, 21418, [8], "%", 0.5, 0, 0, 100, 1
ignBlends4_table = array, S16, 21428, [8x8], "", 0.1, 0, -100, 100, 1
ignBlends4_loadBins = array, U16, 21556, [8], "Load", 1, 0, 0, 1000, 0
ignBlends4_rpmBins = array, U16, 21572, [8], "RPM", 1, 0, 0, 18000, 0
ignBlends4_blendParameter = bits, U08, 21588, [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)"
ignBlends4_blendBins = array, S16, 21590, [8], "", 0.1, 0, -1000, 1000, 1
ignBlends4_blendValues = array, U08, 21606, [8], "%", 0.5, 0, 0, 100, 1
veBlends1_table = array, S16, 21616, [8x8], "", 0.1, 0, -100, 100, 1
veBlends1_loadBins = array, U16, 21744, [8], "Load", 1, 0, 0, 1000, 0
veBlends1_rpmBins = array, U16, 21760, [8], "RPM", 1, 0, 0, 18000, 0
veBlends1_blendParameter = bits, U08, 21776, [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)"
veBlends1_blendBins = array, S16, 21778, [8], "", 0.1, 0, -1000, 1000, 1
veBlends1_blendValues = array, U08, 21794, [8], "%", 0.5, 0, 0, 100, 1
veBlends2_table = array, S16, 21804, [8x8], "", 0.1, 0, -100, 100, 1
veBlends2_loadBins = array, U16, 21932, [8], "Load", 1, 0, 0, 1000, 0
veBlends2_rpmBins = array, U16, 21948, [8], "RPM", 1, 0, 0, 18000, 0
veBlends2_blendParameter = bits, U08, 21964, [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)"
veBlends2_blendBins = array, S16, 21966, [8], "", 0.1, 0, -1000, 1000, 1
veBlends2_blendValues = array, U08, 21982, [8], "%", 0.5, 0, 0, 100, 1
veBlends3_table = array, S16, 21992, [8x8], "", 0.1, 0, -100, 100, 1
veBlends3_loadBins = array, U16, 22120, [8], "Load", 1, 0, 0, 1000, 0
veBlends3_rpmBins = array, U16, 22136, [8], "RPM", 1, 0, 0, 18000, 0
veBlends3_blendParameter = bits, U08, 22152, [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)"
veBlends3_blendBins = array, S16, 22154, [8], "", 0.1, 0, -1000, 1000, 1
veBlends3_blendValues = array, U08, 22170, [8], "%", 0.5, 0, 0, 100, 1
veBlends4_table = array, S16, 22180, [8x8], "", 0.1, 0, -100, 100, 1
veBlends4_loadBins = array, U16, 22308, [8], "Load", 1, 0, 0, 1000, 0
veBlends4_rpmBins = array, U16, 22324, [8], "RPM", 1, 0, 0, 18000, 0
veBlends4_blendParameter = bits, U08, 22340, [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)"
veBlends4_blendBins = array, S16, 22342, [8], "", 0.1, 0, -1000, 1000, 1
veBlends4_blendValues = array, U08, 22358, [8], "%", 0.5, 0, 0, 100, 1
throttleEstimateEffectiveAreaBins = array, U16, 22368, [12], "%", 0.1, 0, 0, 100, 1
throttleEstimateEffectiveAreaValues = array, U16, 22392, [12], "g/s", 0.1, 0, 0, 6500, 1
boostOpenLoopBlends1_table = array, S16, 22416, [8x8], "", 0.1, 0, -100, 100, 1
boostOpenLoopBlends1_loadBins = array, U16, 22544, [8], "Load", 1, 0, 0, 1000, 0
boostOpenLoopBlends1_rpmBins = array, U16, 22560, [8], "RPM", 1, 0, 0, 18000, 0
boostOpenLoopBlends1_blendParameter = bits, U08, 22576, [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)"
boostOpenLoopBlends1_blendBins = array, S16, 22578, [8], "", 0.1, 0, -1000, 1000, 1
boostOpenLoopBlends1_blendValues = array, U08, 22594, [8], "%", 0.5, 0, 0, 100, 1
boostOpenLoopBlends2_table = array, S16, 22604, [8x8], "", 0.1, 0, -100, 100, 1
boostOpenLoopBlends2_loadBins = array, U16, 22732, [8], "Load", 1, 0, 0, 1000, 0
boostOpenLoopBlends2_rpmBins = array, U16, 22748, [8], "RPM", 1, 0, 0, 18000, 0
boostOpenLoopBlends2_blendParameter = bits, U08, 22764, [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)"
boostOpenLoopBlends2_blendBins = array, S16, 22766, [8], "", 0.1, 0, -1000, 1000, 1
boostOpenLoopBlends2_blendValues = array, U08, 22782, [8], "%", 0.5, 0, 0, 100, 1
boostClosedLoopBlends1_table = array, S16, 22792, [8x8], "", 0.1, 0, -100, 100, 1
boostClosedLoopBlends1_loadBins = array, U16, 22920, [8], "Load", 1, 0, 0, 1000, 0
boostClosedLoopBlends1_rpmBins = array, U16, 22936, [8], "RPM", 1, 0, 0, 18000, 0
boostClosedLoopBlends1_blendParameter = bits, U08, 22952, [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)"
boostClosedLoopBlends1_blendBins = array, S16, 22954, [8], "", 0.1, 0, -1000, 1000, 1
boostClosedLoopBlends1_blendValues = array, U08, 22970, [8], "%", 0.5, 0, 0, 100, 1
boostClosedLoopBlends2_table = array, S16, 22980, [8x8], "", 0.1, 0, -100, 100, 1
boostClosedLoopBlends2_loadBins = array, U16, 23108, [8], "Load", 1, 0, 0, 1000, 0
boostClosedLoopBlends2_rpmBins = array, U16, 23124, [8], "RPM", 1, 0, 0, 18000, 0
boostClosedLoopBlends2_blendParameter = bits, U08, 23140, [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)"
boostClosedLoopBlends2_blendBins = array, S16, 23142, [8], "", 0.1, 0, -1000, 1000, 1
boostClosedLoopBlends2_blendValues = array, U08, 23158, [8], "%", 0.5, 0, 0, 100, 1
; total TS size = 23168
[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."
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"
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."
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 equiped."
tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped."
cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel."
cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. \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"
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. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
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)."
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nPositive value in case of synchnization point before TDC and negative in case of synchnization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC.\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."
canNbcType = "set can_mode X"
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"
throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata"
baroSensor_lowValue = "kPa value at low volts"
baroSensor_highValue = "kPa value at high volts"
manIdlePosition = "Value between 0 and 100 used in Manual mode"
knockRetardAggression = "Ignition timing to remove when a knock event occurs."
knockRetardReapplyRate = "After a knock event, reapply timing at this rate."
engineSyncCam = "Select which cam is used for engine sync. Other cams will be used only for VVT measurement, but not engine sync."
vssFilterReciprocal = "Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response."
vssGearRatio = "Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0."
vssToothCount = "Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft."
idleVeOverrideMode = "Override the Y axis (load) value used for only the Idle VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this."
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"
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"
idle_antiwindupFreq = "0.1 is a good default value"
triggerInputPins1 = "triggerInputPins 1"
triggerInputPins2 = "triggerInputPins 2"
mc33_t_min_boost = "Minimum allowed time for the boost phase. If the boost target current is reached before this time elapses, it is assumed that the injector has failed short circuit."
canTxPin = "set_can_tx_pin X"
canRxPin = "set_can_rx_pin X"
acIdleExtraOffset = "Additional idle % while A/C is active"
finalGearRatio = "Ratio between the wheels and your transmission output."
wastegatePositionMin = "Voltage when the wastegate is closed.\nYou probably don't have one of these!"
wastegatePositionMax = "Voltage when the wastegate is fully open.\nYou probably don't have one of these!\n1 volt = 1000 units"
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"
tunerStudioSerialSpeed = "Secondary TTL channel baud rate"
compressionRatio = "Just for reference really, not taken into account by any logic at this point"
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"
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"
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. Use of this mode is required if you have a narrowband O2 sensor."
verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details"
invertCamVVTSignal = "get invertCamVVTSignal"
consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors"
useRawOutputToDriveIdleStepper = "If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coilss"
verboseCan2 = "Print incoming and outgoing second bus CAN messages in 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"
launchSpeedThreshold = "Disabled above this speed"
launchTimingRpmRange = "Range from Launch RPM for Timing Retard to activate"
launchFuelAdded = "Extra Fuel Added"
launchBoostDuty = "Duty Cycle for the Boost Solenoid"
hardCutRpmRange = "Range from Launch RPM to activate Hard Cut"
stft_maxIdleRegionRpm = "Below this RPM, the idle region is active"
stft_maxOverrunLoad = "Below this engine load, the overrun region is active"
stft_minPowerLoad = "Above this engine load, the power region is active"
stft_deadband = "When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required."
stft_minClt = "Below this temperature, correction is disabled."
stft_minAfr = "Below this AFR, correction is paused"
stft_maxAfr = "Above this AFR, correction is paused"
stft_startupDelay = "Delay after starting the engine before beginning closed loop correction."
stft_cellCfgs1_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second."
stft_cellCfgs2_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second."
stft_cellCfgs3_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second."
stft_cellCfgs4_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second."
stepperDcIo1_controlPin = "Acts as EN pin in two-wire mode"
stepperDcIo2_controlPin = "Acts as EN pin in two-wire mode"
engineMake = "For example, BMW, GM or Chevrolet\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."
isVerboseIAC = "Print details into rusEFI console\nenable verbose_idle"
silentTriggerError = "Sometimes we have a performance issue while printing error"
canReadEnabled = "enable can_read/disable can_read"
canWriteEnabled = "enable can_write/disable can_write"
tachPulseDurationAsDutyCycle = "Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50%"
isAlternatorControlEnabled = "This enables smart alternator control and activates the extra alternator settings."
invertPrimaryTriggerSignal = "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"
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
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"
acIdleRpmBump = "Extra 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,"RPM", 1, 0, 0, 1500, 0"
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"
alternatorOffAboveTps = "Turns off alternator output above specified TPS, enabling this reduced parasitic drag on the engine at full load."
afterCrankingIACtaperDuration = "This is the duration in cycles that the IAC will take to reach its normal idle position, it can be used to hold the idle higher for a few seconds after cranking to improve startup."
iacByTpsTaper = "Extra IAC, in percent between 0 and 100, tapered between zero and idle deactivation TPS value"
auxSerialTxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial"
auxSerialRxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial"
tpsAccelLookback = "How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs."
coastingFuelCutVssLow = "Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears."
coastingFuelCutVssHigh = "Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears."
noFuelTrimAfterDfcoTime = "Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut."
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)."
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\nTODO: rename to vvtOutputs 1"
vvtPins2 = "VVT output\nTODO: rename to vvtOutputs 2"
vvtPins3 = "VVT output\nTODO: rename to vvtOutputs 3"
vvtPins4 = "VVT output\nTODO: rename to vvtOutputs 4"
crankingIACposition = "This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling."
vvtOutputFrequency1 = "vvtOutputFrequency 1"
vvtOutputFrequency2 = "vvtOutputFrequency 2"
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."
postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start"
postCrankingDurationSec = "Time over which to taper out after start enrichment"
auxTempSensor1_tempC_1 = "these values are in Celcius"
auxTempSensor1_bias_resistor = "Pull-up resistor value on your board"
auxTempSensor2_tempC_1 = "these values are in Celcius"
auxTempSensor2_bias_resistor = "Pull-up resistor value on your board"
etbWastegatePid_offset = "Linear addition to PID logic"
etbWastegatePid_periodMs = "PID dTime"
etbWastegatePid_minValue = "Output Min Duty Cycle"
etbWastegatePid_maxValue = "Output Max Duty Cycle"
stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough"
stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)"
stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)"
timing_offset_cylinder1 = "per-cylinder timing correction 1"
timing_offset_cylinder2 = "per-cylinder timing correction 2"
timing_offset_cylinder3 = "per-cylinder timing correction 3"
timing_offset_cylinder4 = "per-cylinder timing correction 4"
timing_offset_cylinder5 = "per-cylinder timing correction 5"
timing_offset_cylinder6 = "per-cylinder timing correction 6"
timing_offset_cylinder7 = "per-cylinder timing correction 7"
timing_offset_cylinder8 = "per-cylinder timing correction 8"
timing_offset_cylinder9 = "per-cylinder timing correction 9"
timing_offset_cylinder10 = "per-cylinder timing correction 10"
timing_offset_cylinder11 = "per-cylinder timing correction 11"
timing_offset_cylinder12 = "per-cylinder timing correction 12"
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"
etbJamTimeout = "Time required to detect a stuck throttle."
etbExpAverageLength = "By the way ETB PID runs at 500hz, length in 1/500 of second here."
coastingFuelCutRpmHigh = "This sets the RPM above which fuel cut is active."
coastingFuelCutRpmLow = "This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle"
coastingFuelCutTps = "Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position."
coastingFuelCutClt = "Fuel cutoff is disabled when the engine is cold."
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
scriptCurveName1 = "scriptCurveName 1"
scriptCurveName2 = "scriptCurveName 2"
scriptCurveName3 = "scriptCurveName 3"
scriptCurveName4 = "scriptCurveName 4"
scriptCurveName5 = "scriptCurveName 5"
scriptCurveName6 = "scriptCurveName 6"
scriptTableName1 = "scriptTableName 1"
scriptTableName2 = "scriptTableName 2"
scriptTableName3 = "scriptTableName 3"
scriptTableName4 = "scriptTableName 4"
scriptSettingName1 = "scriptSettingName 1"
scriptSettingName2 = "scriptSettingName 2"
scriptSettingName3 = "scriptSettingName 3"
scriptSettingName4 = "scriptSettingName 4"
scriptSettingName5 = "scriptSettingName 5"
scriptSettingName6 = "scriptSettingName 6"
scriptSettingName7 = "scriptSettingName 7"
scriptSettingName8 = "scriptSettingName 8"
tChargeAirCoefMin = "Heat transfer coefficient at zero flow.\n0 means the air charge is fully heated to the same temperature as CLT.\n1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT."
tChargeAirCoefMax = "Heat transfer coefficient at high flow, as defined by "max air flow".\n0 means the air charge is fully heated to the same temperature as CLT.\n1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT."
tChargeAirFlowMax = "High flow point for heat transfer estimation.\nSet this to perhaps 50-75% of your maximum airflow at wide open throttle."
tChargeAirIncrLimit = "Maximum allowed rate of increase allowed for the estimated charge temperature"
tChargeAirDecrLimit = "Maximum allowed rate of decrease allowed for the estimated charge temperature"
etb_iTermMin = "iTerm min value"
etb_iTermMax = "iTerm max value"
idleTimingPid_offset = "Linear addition to PID logic"
idleTimingPid_periodMs = "PID dTime"
idleTimingPid_minValue = "Output Min Duty Cycle"
idleTimingPid_maxValue = "Output Max Duty Cycle"
etbRocExpAverageLength = "By the way ETB PID runs at 500hz, length in 1/500 of second here."
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
idlerpmpid_iTermMin = "iTerm min value"
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.\nE0 = 14.7\nE10 = 14.1\nE85 = 9.9\nE100 = 9.0"
idlerpmpid_iTermMax = "iTerm max value"
etbIdleThrottleRange = "This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position."
cylinderBankSelect1 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1"
cylinderBankSelect2 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 2"
cylinderBankSelect3 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 3"
cylinderBankSelect4 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 4"
cylinderBankSelect5 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 5"
cylinderBankSelect6 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 6"
cylinderBankSelect7 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 7"
cylinderBankSelect8 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 8"
cylinderBankSelect9 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 9"
cylinderBankSelect10 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 10"
cylinderBankSelect11 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 11"
cylinderBankSelect12 = "Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 12"
triggerCompCenterVolt = "Trigger comparator center point voltage"
triggerCompHystMin = "Trigger comparator hysteresis voltage (Min)"
triggerCompHystMax = "Trigger comparator hysteresis voltage (Max)"
triggerCompSensorSatRpm = "VR-sensor saturation RPM"
idleRpmPid2_offset = "Linear addition to PID logic"
idleRpmPid2_periodMs = "PID dTime"
idleRpmPid2_minValue = "Output Min Duty Cycle"
idleRpmPid2_maxValue = "Output Max Duty Cycle"
canVssNbcType = "set can_vss X"
gppwm1_pin = "Select a pin to use for PWM or on-off output."
gppwm1_dutyIfError = "If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.\nThis should be a safe value for whatever hardware is connected to prevent damage."
gppwm1_pwmFrequency = "Select a frequency to run PWM at.\nSet this to 0hz to enable on-off mode."
gppwm1_onAboveDuty = "Hysteresis: in on-off mode, turn the output on when the table value is above this duty."
gppwm1_offBelowDuty = "Hysteresis: in on-off mode, turn the output off when the table value is below this duty."
gppwm1_loadAxis = "Selects the Y axis to use for the table."
gppwm1_rpmAxis = "Selects the X axis to use for the table."
gppwm2_pin = "Select a pin to use for PWM or on-off output."
gppwm2_dutyIfError = "If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.\nThis should be a safe value for whatever hardware is connected to prevent damage."
gppwm2_pwmFrequency = "Select a frequency to run PWM at.\nSet this to 0hz to enable on-off mode."
gppwm2_onAboveDuty = "Hysteresis: in on-off mode, turn the output on when the table value is above this duty."
gppwm2_offBelowDuty = "Hysteresis: in on-off mode, turn the output off when the table value is below this duty."
gppwm2_loadAxis = "Selects the Y axis to use for the table."
gppwm2_rpmAxis = "Selects the X axis to use for the table."
gppwm3_pin = "Select a pin to use for PWM or on-off output."
gppwm3_dutyIfError = "If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.\nThis should be a safe value for whatever hardware is connected to prevent damage."
gppwm3_pwmFrequency = "Select a frequency to run PWM at.\nSet this to 0hz to enable on-off mode."
gppwm3_onAboveDuty = "Hysteresis: in on-off mode, turn the output on when the table value is above this duty."
gppwm3_offBelowDuty = "Hysteresis: in on-off mode, turn the output off when the table value is below this duty."
gppwm3_loadAxis = "Selects the Y axis to use for the table."
gppwm3_rpmAxis = "Selects the X axis to use for the table."
gppwm4_pin = "Select a pin to use for PWM or on-off output."
gppwm4_dutyIfError = "If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.\nThis should be a safe value for whatever hardware is connected to prevent damage."
gppwm4_pwmFrequency = "Select a frequency to run PWM at.\nSet this to 0hz to enable on-off mode."
gppwm4_onAboveDuty = "Hysteresis: in on-off mode, turn the output on when the table value is above this duty."
gppwm4_offBelowDuty = "Hysteresis: in on-off mode, turn the output off when the table value is below this duty."
gppwm4_loadAxis = "Selects the Y axis to use for the table."
gppwm4_rpmAxis = "Selects the X axis to use for the table."
mc33_i_boost = "Boost Current"
mc33_i_peak = "Peak Current"
mc33_i_hold = "Hold Current"
mc33_t_max_boost = "Maximum allowed boost phase time. If the injector current doesn't reach the threshold before this time elapses, it is assumed that the injector is missing or has failed open circuit."
mc33_t_peak_tot = "Peak phase duration"
mc33_t_hold_tot = "Hold phase duration"
tcu_solenoid_mode1 = "tcu_solenoid_mode 1"
tcu_solenoid_mode2 = "tcu_solenoid_mode 2"
tcu_solenoid_mode3 = "tcu_solenoid_mode 3"
tcu_solenoid_mode4 = "tcu_solenoid_mode 4"
tcu_solenoid_mode5 = "tcu_solenoid_mode 5"
tcu_solenoid_mode6 = "tcu_solenoid_mode 6"
knockBaseNoise = "Knock sensor output knock detection threshold depending on current RPM."
triggerGapOverrideFrom1 = "triggerGapOverrideFrom 1"
triggerGapOverrideFrom2 = "triggerGapOverrideFrom 2"
triggerGapOverrideFrom3 = "triggerGapOverrideFrom 3"
triggerGapOverrideFrom4 = "triggerGapOverrideFrom 4"
triggerGapOverrideFrom5 = "triggerGapOverrideFrom 5"
triggerGapOverrideFrom6 = "triggerGapOverrideFrom 6"
triggerGapOverrideFrom7 = "triggerGapOverrideFrom 7"
triggerGapOverrideFrom8 = "triggerGapOverrideFrom 8"
triggerGapOverrideFrom9 = "triggerGapOverrideFrom 9"
triggerGapOverrideFrom10 = "triggerGapOverrideFrom 10"
triggerGapOverrideFrom11 = "triggerGapOverrideFrom 11"
triggerGapOverrideFrom12 = "triggerGapOverrideFrom 12"
triggerGapOverrideFrom13 = "triggerGapOverrideFrom 13"
triggerGapOverrideFrom14 = "triggerGapOverrideFrom 14"
triggerGapOverrideFrom15 = "triggerGapOverrideFrom 15"
triggerGapOverrideFrom16 = "triggerGapOverrideFrom 16"
triggerGapOverrideFrom17 = "triggerGapOverrideFrom 17"
triggerGapOverrideFrom18 = "triggerGapOverrideFrom 18"
triggerGapOverrideTo1 = "triggerGapOverrideTo 1"
triggerGapOverrideTo2 = "triggerGapOverrideTo 2"
triggerGapOverrideTo3 = "triggerGapOverrideTo 3"
triggerGapOverrideTo4 = "triggerGapOverrideTo 4"
triggerGapOverrideTo5 = "triggerGapOverrideTo 5"
triggerGapOverrideTo6 = "triggerGapOverrideTo 6"
triggerGapOverrideTo7 = "triggerGapOverrideTo 7"
triggerGapOverrideTo8 = "triggerGapOverrideTo 8"
triggerGapOverrideTo9 = "triggerGapOverrideTo 9"
triggerGapOverrideTo10 = "triggerGapOverrideTo 10"
triggerGapOverrideTo11 = "triggerGapOverrideTo 11"
triggerGapOverrideTo12 = "triggerGapOverrideTo 12"
triggerGapOverrideTo13 = "triggerGapOverrideTo 13"
triggerGapOverrideTo14 = "triggerGapOverrideTo 14"
triggerGapOverrideTo15 = "triggerGapOverrideTo 15"
triggerGapOverrideTo16 = "triggerGapOverrideTo 16"
triggerGapOverrideTo17 = "triggerGapOverrideTo 17"
triggerGapOverrideTo18 = "triggerGapOverrideTo 18"
maxCamPhaseResolveRpm = "Below this RPM, use camshaft information to synchronize the crank's position for full sequential operation. Use this if your cam sensor does weird things at high RPM. Set to 0 to disable, and always use cam to help sync crank."
dfcoDelay = "Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust..."
acDelay = "Delay before engaging the AC compressor. Set to 0 to engage immediately with no delay. Use this to prevent bogging at idle when AC engages."
hpfpMinAngle = "If the requested activation time is below this angle, don't bother running the pump"
hpfpPumpVolume = "Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm."
hpfpActivationAngle = "How long to keep the valve activated (in order to allow the pump to build pressure and keep the valve open on its own)"
hpfpTargetDecay = "The fastest rate the target pressure can be reduced by. This is because HPFP have no way to bleed off pressure other than injecting fuel."
stepper_raw_output1 = "stepper_raw_output 1"
stepper_raw_output2 = "stepper_raw_output 2"
stepper_raw_output3 = "stepper_raw_output 3"
stepper_raw_output4 = "stepper_raw_output 4"
gearRatio1 = "gearRatio 1"
gearRatio2 = "gearRatio 2"
gearRatio3 = "gearRatio 3"
gearRatio4 = "gearRatio 4"
gearRatio5 = "gearRatio 5"
gearRatio6 = "gearRatio 6"
gearRatio7 = "gearRatio 7"
gearRatio8 = "gearRatio 8"
vvtActivationDelayMs = "We need to give engine time to build oil pressure without diverting it to VVT"
luaDigitalInputPins1 = "luaDigitalInputPins 1"
luaDigitalInputPins2 = "luaDigitalInputPins 2"
luaDigitalInputPins3 = "luaDigitalInputPins 3"
luaDigitalInputPins4 = "luaDigitalInputPins 4"
luaDigitalInputPins5 = "luaDigitalInputPins 5"
luaDigitalInputPins6 = "luaDigitalInputPins 6"
luaDigitalInputPins7 = "luaDigitalInputPins 7"
luaDigitalInputPins8 = "luaDigitalInputPins 8"
tpsSecondaryMaximum = "For Ford TPS, use 53%. For Toyota ETCS-i, use ~65%"
ppsSecondaryMaximum = "For Toyota ETCS-i, use ~69%"
luaDigitalInputPinModes1 = "luaDigitalInputPinModes 1"
luaDigitalInputPinModes2 = "luaDigitalInputPinModes 2"
luaDigitalInputPinModes3 = "luaDigitalInputPinModes 3"
luaDigitalInputPinModes4 = "luaDigitalInputPinModes 4"
luaDigitalInputPinModes5 = "luaDigitalInputPinModes 5"
luaDigitalInputPinModes6 = "luaDigitalInputPinModes 6"
luaDigitalInputPinModes7 = "luaDigitalInputPinModes 7"
luaDigitalInputPinModes8 = "luaDigitalInputPinModes 8"
hpfpPeakPos = "Crank angle ATDC of first lobe peak"
rpmSoftLimitWindowSize = "Window that the correction will be added throughout (example, if rpm limit is 7000, and rpmSoftLimitWindowSize is 200, the corrections activate at 6800RPM, creating a 200rpm window)"
rpmSoftLimitTimingRetard = "Degrees of timing REMOVED from actual timing during soft RPM limit window"
rpmSoftLimitFuelAdded = "% of fuel ADDED during window"
rpmHardLimitHyst = "Hysterisis: if the hard limit is 7200rpm and rpmHardLimitHyst is 200rpm, then when the ECU sees 7200rpm, fuel/ign will cut, and stay cut until 7000rpm (7200-200) is reached"
benchTestOffTime = "Time between bench test pulses"
boostCutPressureHyst = "Hysterisis: if hard cut is 240kpa, and boostCutPressureHyst is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached"
gearBasedOpenLoopBoostAdder = "Boost duty cycle added by gear"
benchTestCount = "How many test bench pulses do you want"
etbBiasBins = "target TPS value, 0 to 100%\nTODO: use int8 data date once we template interpolation method"
etbBiasValues = "PWM bias, 0 to 100%"
sparkDwellRpmBins = "On Single Coil or Wasted Spark setups you have to lower dwell at high RPM"
cltIdleRpmBins = "CLT-based target RPM for automatic idle controller"
cltIdleRpm = "See idleRpmPid"
cltTimingBins = "CLT-based timing correction"
crankingTpsCoef = "Cranking fuel correction coefficient based on TPS"
narrowToWideOxygenBins = "Narrow Band WBO Approximation"
crankingAdvanceBins = "Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)"
crankingAdvance = "Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)"
iacCoastingRpmBins = "RPM-based idle position for coasting"
iacCoasting = "RPM-based idle position for coasting"
cltCrankingCorrBins = "CLT-based cranking position multiplier for simple manual idle controller"
cltCrankingCorr = "CLT-based cranking position multiplier for simple manual idle controller"
idleAdvanceBins = "Optional timing advance table for Idle (see useSeparateAdvanceForIdle)"
idleAdvance = "Optional timing advance table for Idle (see useSeparateAdvanceForIdle)"
cltIdleCorrBins = "CLT-based idle position multiplier for simple manual idle controller"
cltIdleCorr = "CLT-based idle position multiplier for simple manual idle controller"
mafDecoding = "Also known as MAF transfer function.\nkg/hour value.\nBy the way 2.081989116 kg/h = 1 ft3/m"
throttleEstimateEffectiveAreaValues = "In units of g/s normalized to choked flow conditions"
; SettingContextHelpEnd
; CONFIG_DEFINITION_END
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
cursorDepth = 2 ; Same as spot depth.
gaugeColumns = 1 ; Only 1 or 2 are valid.
pageButtons = "&EGO"
gauge1 = RPMGauge
#if LAMBDA
gauge2 = lambda1Gauge
#else
gauge2 = afr1Gauge
#endif
gauge3 = MAPGauge
gauge4 = veValueGauge
[LoggerDefinition]
; valid logger types: composite, tooth, trigger, csv
loggerDef = compositeLogger, "Trigger Logger", composite
startCommand = "l\x01"
stopCommand = "l\x02"
dataReadCommand = "l\x03"
dataReadTimeout = 10000 ; time in ms
dataReadyCondition = { toothLogReady }
continuousRead = true
; recordDef = headerLen, footerLen, recordLen
recordDef = 0, 0, 5
; these names are hard-coded inside TS
recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
recordField = sync, "Sync", 3, 1, 1.0, "Flag"
recordField = coil, "Coil", 4, 1, 1.0, "Flag"
recordField = inj, "Injector", 5, 1, 1.0, "Flag"
recordField = time, "Time", 8, 32, 0.001, "ms"
; it seems that TS also needs to know the diff.size of a tooth
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
loggerDef = triggerScope, "Trigger Oscilloscope", csv
startCommand = "l\x04"
stopCommand = "l\x05"
dataReadCommand = "l\x06"
dataReadTimeout = 1000
dataReadyCondition = { triggerScopeReady }
continuousRead = true
recordDef = 0, 0, 2
recordField = channel1, "Channel 1", 0, 8, {6.6 / 255}, "v"
recordField = channel2, "Channel 2", 8, 8, {6.6 / 255}, "v"
[VeAnalyze]
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
#if LAMBDA
veAnalyzeMap = veTableTbl, lambdaTableTbl, lambdaValue, egoCorrectionForVeAnalyze, { 1 }
lambdaTargetTables = lambdaTableTbl, afrTSCustom
#else
veAnalyzeMap = veTableTbl, afrTableTbl, AFRValue, egoCorrectionForVeAnalyze, { 1 }
lambdaTargetTables = afrTableTbl, afrTSCustom
#endif
; filter = Name, "DisplayName", outputChannel, operator, defaultVal, userAdjustable
filter = minRPMFilter, "Minimum RPM", RPMValue, < , 500, , true
filter = minCltFilter, "Minimum CLT", coolant, < , 60, , true
filter = deltaTps, "dTPS", deltaTps > , 50, , true
filter = VBatt, "VBatt", VBatt < , 12, , true
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio 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 = 1388
; 11.2.3 Full Optimized High Speed
scatteredOchGetCommand = 9
scatteredOffsetArray = highSpeedOffsets
scatteredGetEnabled = { 0 }
;
; 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]
unusedBitLAtwfs = bits, U32, 0, [10:10]
toothLogReady = bits, U32, 0, [11:11]
isTpsError = bits, U32, 0, [12:12]
isCltError = bits, U32, 0, [13:13]
isMapError = bits, U32, 0, [14:14]
isIatError = bits, U32, 0, [15:15]
isTriggerError = bits, U32, 0, [16:16]
hasCriticalError = bits, U32, 0, [17:17]
isWarnNow = bits, U32, 0, [18:18]
isPedalError = bits, U32, 0, [19:19]
isKnockChipOk = bits, U32, 0, [20:20]
launchTriggered = bits, U32, 0, [21:21]
isTps2Error = bits, U32, 0, [22:22]
isIdleClosedLoop = bits, U32, 0, [23:23]
injectorFault = bits, U32, 0, [24:24]
ignitionFault = bits, U32, 0, [25:25]
RPMValue = scalar, U16, 4, "RPM", 1, 0
rpmAcceleration = scalar, U16, 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
knockRetard = scalar, U08, 36, "deg", 0.1, 0
VBatt = scalar, U16, 38, "V", 0.001, 0
oilPressure = scalar, U16, 40, "kPa", 0.03333333333333333, 0
vvtPositionB1I = scalar, S16, 42, "deg", 0.02, 0
actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0
injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0
veValue = scalar, U08, 47, "ratio", 0.5, 0
injectionOffset = scalar, S16, 48, "deg", 1, 0
injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0
engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0
wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0
wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0
revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0
canReadCounter = scalar, U16, 60, "", 1, 0
tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0
currentIgnitionMode = scalar, U08, 64, "", 1, 0
currentInjectionMode = scalar, U08, 65, "", 1, 0
coilDutyCycle = scalar, U16, 66, "%", 0.01, 0
idleAirValvePosition = scalar, U16, 68, "%", 0.01, 0
etbTarget = scalar, S16, 70, "%", 0.01, 0
etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0
fuelTankLevel = scalar, S16, 74, "%", 0.01, 0
totalFuelConsumption = scalar, U16, 76, "grams", 1, 0
fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0
TPS2Value = scalar, S16, 80, "%", 0.01, 0
tuneCrc16 = scalar, U16, 82, "crc16", 1, 0
knockLevel = scalar, F32, 84, "Volts", 1, 0
seconds = scalar, U32, 88, "sec", 1, 0
engineMode = scalar, U32, 92, "em", 1, 0
firmwareVersion = scalar, U32, 96, "version_f", 1, 0
rawIdlePositionSensor = scalar, S16, 100, "V", 0.001, 0
rawWastegatePosition = scalar, S16, 102, "V", 0.001, 0
accelerationX = scalar, S16, 104, "G", 0.01, 0
accelerationY = scalar, S16, 106, "G", 0.01, 0
detectedGear = scalar, U08, 108, "", 1, 0
maxTriggerReentrant = scalar, U08, 109, "", 1, 0
rawLowFuelPressure = scalar, S16, 110, "V", 0.001, 0
rawHighFuelPressure = scalar, S16, 112, "V", 0.001, 0
lowFuelPressure = scalar, S16, 114, "kpa", 0.03333333333333333, 0
tcuDesiredGear = scalar, S08, 116, "gear", 1, 0
flexPercent = scalar, U08, 117, "%", 0.5, 0
wastegatePositionSensor = scalar, S16, 118, "%", 0.01, 0
highFuelPressure = scalar, S16, 120, "bar", 0.1, 0
tsConfigVersion = scalar, U32, 124, "", 1, 0
calibrationValue = scalar, F32, 128, "", 1, 0
calibrationMode = scalar, U08, 132, "", 1, 0
idleTargetPosition = scalar, U08, 133, "", 1, 0
totalTriggerErrorCounter = scalar, U32, 136, "counter", 1, 0
orderingErrorCounter = scalar, U32, 140, "", 1, 0
warningCounter = scalar, U16, 144, "count", 1, 0
lastErrorCode = scalar, U16, 146, "error", 1, 0
recentErrorCode1 = scalar, U16, 148, "error", 1, 0
recentErrorCode2 = scalar, U16, 150, "error", 1, 0
recentErrorCode3 = scalar, U16, 152, "error", 1, 0
recentErrorCode4 = scalar, U16, 154, "error", 1, 0
recentErrorCode5 = scalar, U16, 156, "error", 1, 0
recentErrorCode6 = scalar, U16, 158, "error", 1, 0
recentErrorCode7 = scalar, U16, 160, "error", 1, 0
recentErrorCode8 = scalar, U16, 162, "error", 1, 0
debugFloatField1 = scalar, F32, 164, "val", 1, 0
debugFloatField2 = scalar, F32, 168, "val", 1, 0
debugFloatField3 = scalar, F32, 172, "val", 1, 0
debugFloatField4 = scalar, F32, 176, "val", 1, 0
debugFloatField5 = scalar, F32, 180, "val", 1, 0
debugFloatField6 = scalar, F32, 184, "val", 1, 0
debugFloatField7 = scalar, F32, 188, "val", 1, 0
debugIntField1 = scalar, U32, 192, "val", 1, 0
debugIntField2 = scalar, U32, 196, "val", 1, 0
debugIntField3 = scalar, U32, 200, "val", 1, 0
debugIntField4 = scalar, S16, 204, "val", 1, 0
debugIntField5 = scalar, S16, 206, "val", 1, 0
egt1 = scalar, U16, 208, "deg C", 1, 0
egt2 = scalar, U16, 210, "deg C", 1, 0
egt3 = scalar, U16, 212, "deg C", 1, 0
egt4 = scalar, U16, 214, "deg C", 1, 0
egt5 = scalar, U16, 216, "deg C", 1, 0
egt6 = scalar, U16, 218, "deg C", 1, 0
egt7 = scalar, U16, 220, "deg C", 1, 0
egt8 = scalar, U16, 222, "deg C", 1, 0
rawTps1Primary = scalar, S16, 224, "V", 0.001, 0
rawPpsPrimary = scalar, S16, 226, "V", 0.001, 0
rawClt = scalar, S16, 228, "V", 0.001, 0
rawIat = scalar, S16, 230, "V", 0.001, 0
rawOilPressure = scalar, S16, 232, "V", 0.001, 0
fuelClosedLoopBinIdx = scalar, U08, 234, "", 1, 0
tcuCurrentGear = scalar, S08, 235, "gear", 1, 0
rawPpsSecondary = scalar, S16, 236, "V", 0.001, 0
knock1 = scalar, S08, 238, "dBv", 1, 0
knock2 = scalar, S08, 239, "dBv", 1, 0
knock3 = scalar, S08, 240, "dBv", 1, 0
knock4 = scalar, S08, 241, "dBv", 1, 0
knock5 = scalar, S08, 242, "dBv", 1, 0
knock6 = scalar, S08, 243, "dBv", 1, 0
knock7 = scalar, S08, 244, "dBv", 1, 0
knock8 = scalar, S08, 245, "dBv", 1, 0
knock9 = scalar, S08, 246, "dBv", 1, 0
knock10 = scalar, S08, 247, "dBv", 1, 0
knock11 = scalar, S08, 248, "dBv", 1, 0
knock12 = scalar, S08, 249, "dBv", 1, 0
idlePositionSensor = scalar, S16, 250, "%", 0.01, 0
AFRValue = scalar, U16, 252, "AFR", 0.001, 0
VssAcceleration = scalar, U16, 254, "m/s2", 0.0033333333333333335, 0
lambdaValue2 = scalar, U16, 256, "", 1.0E-4, 0
AFRValue2 = scalar, U16, 258, "AFR", 0.001, 0
vvtPositionB1E = scalar, S16, 260, "deg", 0.02, 0
vvtPositionB2I = scalar, S16, 262, "deg", 0.02, 0
vvtPositionB2E = scalar, S16, 264, "deg", 0.02, 0
fuelPidCorrection1 = scalar, S16, 266, "%", 0.01, 0
fuelPidCorrection2 = scalar, S16, 268, "%", 0.01, 0
rawTps1Secondary = scalar, S16, 270, "V", 0.001, 0
rawTps2Primary = scalar, S16, 272, "V", 0.001, 0
rawTps2Secondary = scalar, S16, 274, "V", 0.001, 0
accelerationZ = scalar, S16, 276, "G", 0.01, 0
accelerationRoll = scalar, S16, 278, "G", 0.01, 0
accelerationYaw = scalar, S16, 280, "G", 0.01, 0
vvtTargets1 = scalar, S08, 282, "deg", 1, 0
vvtTargets2 = scalar, S08, 283, "deg", 1, 0
vvtTargets3 = scalar, S08, 284, "deg", 1, 0
vvtTargets4 = scalar, S08, 285, "deg", 1, 0
turboSpeed = scalar, U16, 286, "hz", 1, 0
ignitionAdvanceCyl1 = scalar, S16, 288, "deg", 0.02, 0
ignitionAdvanceCyl2 = scalar, S16, 290, "deg", 0.02, 0
ignitionAdvanceCyl3 = scalar, S16, 292, "deg", 0.02, 0
ignitionAdvanceCyl4 = scalar, S16, 294, "deg", 0.02, 0
ignitionAdvanceCyl5 = scalar, S16, 296, "deg", 0.02, 0
ignitionAdvanceCyl6 = scalar, S16, 298, "deg", 0.02, 0
ignitionAdvanceCyl7 = scalar, S16, 300, "deg", 0.02, 0
ignitionAdvanceCyl8 = scalar, S16, 302, "deg", 0.02, 0
ignitionAdvanceCyl9 = scalar, S16, 304, "deg", 0.02, 0
ignitionAdvanceCyl10 = scalar, S16, 306, "deg", 0.02, 0
ignitionAdvanceCyl11 = scalar, S16, 308, "deg", 0.02, 0
ignitionAdvanceCyl12 = scalar, S16, 310, "deg", 0.02, 0
tps1Split = scalar, S16, 312, "%", 0.01, 0
tps2Split = scalar, S16, 314, "%", 0.01, 0
tps12Split = scalar, S16, 316, "%", 0.01, 0
accPedalSplit = scalar, S16, 318, "%", 0.01, 0
sparkCutReason = scalar, S08, 320, "code", 1, 0
fuelCutReason = scalar, S08, 321, "code", 1, 0
mafEstimate = scalar, U16, 322, "kg/h", 0.1, 0
instantRpm = scalar, U16, 324, "rpm", 1, 0
rawMap = scalar, U16, 326, "V", 0.001, 0
rawAfr = scalar, U16, 328, "V", 0.001, 0
calibrationValue2 = scalar, F32, 332, "", 1, 0
isMainRelayOn = bits, U32, 336, [0:0]
isUsbConnected = bits, U32, 336, [1:1]
luaInvocationCounter = scalar, U32, 340, "count", 1, 0
luaLastCycleDuration = scalar, U32, 344, "nt", 1, 0
testBenchIter = scalar, U08, 348, "count", 1, 0
tcu_currentRange = scalar, U08, 349, "", 1, 0
tcRatio = scalar, U16, 350, "value", 0.01, 0
lastShiftTime = scalar, F32, 352, "", 1, 0
vssEdgeCounter = scalar, U32, 356, "", 1, 0
issEdgeCounter = scalar, U32, 360, "", 1, 0
auxLinear1 = scalar, S16, 364, "", 0.01, 0
auxLinear2 = scalar, S16, 366, "", 0.01, 0
dfcoActive = bits, U32, 368, [0:0]
fallbackMap = scalar, U16, 372, "kPa", 0.1, 0
instantMAPValue = scalar, U16, 374, "kPa", 0.03333333333333333, 0
maxLockedDuration = scalar, U16, 376, "us", 1, 0
canWriteOk = scalar, U16, 378, "", 1, 0
canWriteNotOk = scalar, U16, 380, "", 1, 0
triggerPrimaryFall = scalar, U32, 384, "", 1, 0
triggerPrimaryRise = scalar, U32, 388, "", 1, 0
triggerSecondaryFall = scalar, U32, 392, "", 1, 0
triggerSecondaryRise = scalar, U32, 396, "", 1, 0
triggerVvtFall = scalar, U16, 400, "", 1, 0
triggerVvtRise = scalar, U16, 402, "", 1, 0
triggerVvt2Fall = scalar, U16, 404, "", 1, 0
triggerVvt2Rise = scalar, U16, 406, "", 1, 0
starterState = scalar, U08, 408, "", 1, 0
starterRelayDisable = scalar, U08, 409, "", 1, 0
multiSparkCounter = scalar, U08, 410, "", 1, 0
extiOverflowCount = scalar, U08, 411, "", 1, 0
alternatorStatus_pTerm = scalar, F32, 412, "", 1, 0
alternatorStatus_iTerm = scalar, S16, 416, "", 0.01, 0
alternatorStatus_dTerm = scalar, S16, 418, "", 0.01, 0
alternatorStatus_output = scalar, S16, 420, "", 0.01, 0
alternatorStatus_error = scalar, S16, 422, "", 0.01, 0
alternatorStatus_resetCounter = scalar, U32, 424, "", 1, 0
idleStatus_pTerm = scalar, F32, 428, "", 1, 0
idleStatus_iTerm = scalar, S16, 432, "", 0.01, 0
idleStatus_dTerm = scalar, S16, 434, "", 0.01, 0
idleStatus_output = scalar, S16, 436, "", 0.01, 0
idleStatus_error = scalar, S16, 438, "", 0.01, 0
idleStatus_resetCounter = scalar, U32, 440, "", 1, 0
etbStatus_pTerm = scalar, F32, 444, "", 1, 0
etbStatus_iTerm = scalar, S16, 448, "", 0.01, 0
etbStatus_dTerm = scalar, S16, 450, "", 0.01, 0
etbStatus_output = scalar, S16, 452, "", 0.01, 0
etbStatus_error = scalar, S16, 454, "", 0.01, 0
etbStatus_resetCounter = scalar, U32, 456, "", 1, 0
boostStatus_pTerm = scalar, F32, 460, "", 1, 0
boostStatus_iTerm = scalar, S16, 464, "", 0.01, 0
boostStatus_dTerm = scalar, S16, 466, "", 0.01, 0
boostStatus_output = scalar, S16, 468, "", 0.01, 0
boostStatus_error = scalar, S16, 470, "", 0.01, 0
boostStatus_resetCounter = scalar, U32, 472, "", 1, 0
wastegateDcStatus_pTerm = scalar, F32, 476, "", 1, 0
wastegateDcStatus_iTerm = scalar, S16, 480, "", 0.01, 0
wastegateDcStatus_dTerm = scalar, S16, 482, "", 0.01, 0
wastegateDcStatus_output = scalar, S16, 484, "", 0.01, 0
wastegateDcStatus_error = scalar, S16, 486, "", 0.01, 0
wastegateDcStatus_resetCounter = scalar, U32, 488, "", 1, 0
vvtStatus1_pTerm = scalar, F32, 492, "", 1, 0
vvtStatus1_iTerm = scalar, S16, 496, "", 0.01, 0
vvtStatus1_dTerm = scalar, S16, 498, "", 0.01, 0
vvtStatus1_output = scalar, S16, 500, "", 0.01, 0
vvtStatus1_error = scalar, S16, 502, "", 0.01, 0
vvtStatus1_resetCounter = scalar, U32, 504, "", 1, 0
vvtStatus2_pTerm = scalar, F32, 508, "", 1, 0
vvtStatus2_iTerm = scalar, S16, 512, "", 0.01, 0
vvtStatus2_dTerm = scalar, S16, 514, "", 0.01, 0
vvtStatus2_output = scalar, S16, 516, "", 0.01, 0
vvtStatus2_error = scalar, S16, 518, "", 0.01, 0
vvtStatus2_resetCounter = scalar, U32, 520, "", 1, 0
vvtStatus3_pTerm = scalar, F32, 524, "", 1, 0
vvtStatus3_iTerm = scalar, S16, 528, "", 0.01, 0
vvtStatus3_dTerm = scalar, S16, 530, "", 0.01, 0
vvtStatus3_output = scalar, S16, 532, "", 0.01, 0
vvtStatus3_error = scalar, S16, 534, "", 0.01, 0
vvtStatus3_resetCounter = scalar, U32, 536, "", 1, 0
vvtStatus4_pTerm = scalar, F32, 540, "", 1, 0
vvtStatus4_iTerm = scalar, S16, 544, "", 0.01, 0
vvtStatus4_dTerm = scalar, S16, 546, "", 0.01, 0
vvtStatus4_output = scalar, S16, 548, "", 0.01, 0
vvtStatus4_error = scalar, S16, 550, "", 0.01, 0
vvtStatus4_resetCounter = scalar, U32, 552, "", 1, 0
auxSpeed1 = scalar, U16, 556, "s", 1, 0
auxSpeed2 = scalar, U16, 558, "s", 1, 0
ISSValue = scalar, U16, 560, "RPM", 1, 0
rawAnalogInput1 = scalar, S16, 562, "V", 0.001, 0
rawAnalogInput2 = scalar, S16, 564, "V", 0.001, 0
rawAnalogInput3 = scalar, S16, 566, "V", 0.001, 0
rawAnalogInput4 = scalar, S16, 568, "V", 0.001, 0
rawAnalogInput5 = scalar, S16, 570, "V", 0.001, 0
rawAnalogInput6 = scalar, S16, 572, "V", 0.001, 0
rawAnalogInput7 = scalar, S16, 574, "V", 0.001, 0
rawAnalogInput8 = scalar, S16, 576, "V", 0.001, 0
gppwmOutput1 = scalar, U08, 578, "%", 0.5, 0
gppwmOutput2 = scalar, U08, 579, "%", 0.5, 0
gppwmOutput3 = scalar, U08, 580, "%", 0.5, 0
gppwmOutput4 = scalar, U08, 581, "%", 0.5, 0
gppwmXAxis1 = scalar, S16, 582, "", 1, 0
gppwmXAxis2 = scalar, S16, 584, "", 1, 0
gppwmXAxis3 = scalar, S16, 586, "", 1, 0
gppwmXAxis4 = scalar, S16, 588, "", 1, 0
gppwmYAxis1 = scalar, S16, 590, "", 0.1, 0
gppwmYAxis2 = scalar, S16, 592, "", 0.1, 0
gppwmYAxis3 = scalar, S16, 594, "", 0.1, 0
gppwmYAxis4 = scalar, S16, 596, "", 0.1, 0
rawBattery = scalar, S16, 598, "V", 0.001, 0
ignBlendParameter1 = scalar, S16, 600, "", 0.1, 0
ignBlendParameter2 = scalar, S16, 602, "", 0.1, 0
ignBlendParameter3 = scalar, S16, 604, "", 0.1, 0
ignBlendParameter4 = scalar, S16, 606, "", 0.1, 0
ignBlendBias1 = scalar, U08, 608, "%", 0.5, 0
ignBlendBias2 = scalar, U08, 609, "%", 0.5, 0
ignBlendBias3 = scalar, U08, 610, "%", 0.5, 0
ignBlendBias4 = scalar, U08, 611, "%", 0.5, 0
ignBlendOutput1 = scalar, S16, 612, "deg", 0.01, 0
ignBlendOutput2 = scalar, S16, 614, "deg", 0.01, 0
ignBlendOutput3 = scalar, S16, 616, "deg", 0.01, 0
ignBlendOutput4 = scalar, S16, 618, "deg", 0.01, 0
veBlendParameter1 = scalar, S16, 620, "", 0.1, 0
veBlendParameter2 = scalar, S16, 622, "", 0.1, 0
veBlendParameter3 = scalar, S16, 624, "", 0.1, 0
veBlendParameter4 = scalar, S16, 626, "", 0.1, 0
veBlendBias1 = scalar, U08, 628, "%", 0.5, 0
veBlendBias2 = scalar, U08, 629, "%", 0.5, 0
veBlendBias3 = scalar, U08, 630, "%", 0.5, 0
veBlendBias4 = scalar, U08, 631, "%", 0.5, 0
veBlendOutput1 = scalar, S16, 632, "%", 0.01, 0
veBlendOutput2 = scalar, S16, 634, "%", 0.01, 0
veBlendOutput3 = scalar, S16, 636, "%", 0.01, 0
veBlendOutput4 = scalar, S16, 638, "%", 0.01, 0
boostOpenLoopBlendParameter1 = scalar, S16, 640, "", 0.1, 0
boostOpenLoopBlendParameter2 = scalar, S16, 642, "", 0.1, 0
boostOpenLoopBlendBias1 = scalar, U08, 644, "%", 0.5, 0
boostOpenLoopBlendBias2 = scalar, U08, 645, "%", 0.5, 0
boostOpenLoopBlendOutput1 = scalar, S08, 646, "%", 1, 0
boostOpenLoopBlendOutput2 = scalar, S08, 647, "%", 1, 0
boostClosedLoopBlendParameter1 = scalar, S16, 648, "", 0.1, 0
boostClosedLoopBlendParameter2 = scalar, S16, 650, "", 0.1, 0
boostClosedLoopBlendBias1 = scalar, U08, 652, "%", 0.5, 0
boostClosedLoopBlendBias2 = scalar, U08, 653, "%", 0.5, 0
boostClosedLoopBlendOutput1 = scalar, S16, 654, "%", 0.1, 0
boostClosedLoopBlendOutput2 = scalar, S16, 656, "%", 0.1, 0
coilState1 = bits, U32, 660, [0:0]
coilState2 = bits, U32, 660, [1:1]
coilState3 = bits, U32, 660, [2:2]
coilState4 = bits, U32, 660, [3:3]
coilState5 = bits, U32, 660, [4:4]
coilState6 = bits, U32, 660, [5:5]
coilState7 = bits, U32, 660, [6:6]
coilState8 = bits, U32, 660, [7:7]
coilState9 = bits, U32, 660, [8:8]
coilState10 = bits, U32, 660, [9:9]
coilState11 = bits, U32, 660, [10:10]
coilState12 = bits, U32, 660, [11:11]
injectorState1 = bits, U32, 660, [12:12]
injectorState2 = bits, U32, 660, [13:13]
injectorState3 = bits, U32, 660, [14:14]
injectorState4 = bits, U32, 660, [15:15]
injectorState5 = bits, U32, 660, [16:16]
injectorState6 = bits, U32, 660, [17:17]
injectorState7 = bits, U32, 660, [18:18]
injectorState8 = bits, U32, 660, [19:19]
injectorState9 = bits, U32, 660, [20:20]
injectorState10 = bits, U32, 660, [21:21]
injectorState11 = bits, U32, 660, [22:22]
injectorState12 = bits, U32, 660, [23:23]
triggerChannel1 = bits, U32, 660, [24:24]
triggerChannel2 = bits, U32, 660, [25:25]
vvtChannel1 = bits, U32, 660, [26:26]
vvtChannel2 = bits, U32, 660, [27:27]
vvtChannel3 = bits, U32, 660, [28:28]
vvtChannel4 = bits, U32, 660, [29:29]
outputRequestPeriod = scalar, U32, 664, "", 1, 0
mapFast = scalar, F32, 668, "", 1, 0
luaGauges1 = scalar, F32, 672, "value", 1, 0
luaGauges2 = scalar, F32, 676, "value", 1, 0
rawMaf2 = scalar, U16, 680, "V", 0.001, 0
mafMeasured2 = scalar, U16, 682, "kg/h", 0.1, 0
vehicleSpeedKph = scalar, U16, 684, "kph", 0.01, 0
Gego = scalar, U16, 686, "%", 0.01,0
unusedAtTheEnd1 = scalar, U08, 688, "", 1, 0
unusedAtTheEnd2 = scalar, U08, 689, "", 1, 0
unusedAtTheEnd3 = scalar, U08, 690, "", 1, 0
unusedAtTheEnd4 = scalar, U08, 691, "", 1, 0
unusedAtTheEnd5 = scalar, U08, 692, "", 1, 0
unusedAtTheEnd6 = scalar, U08, 693, "", 1, 0
unusedAtTheEnd7 = scalar, U08, 694, "", 1, 0
unusedAtTheEnd8 = scalar, U08, 695, "", 1, 0
unusedAtTheEnd9 = scalar, U08, 696, "", 1, 0
unusedAtTheEnd10 = scalar, U08, 697, "", 1, 0
unusedAtTheEnd11 = scalar, U08, 698, "", 1, 0
unusedAtTheEnd12 = scalar, U08, 699, "", 1, 0
unusedAtTheEnd13 = scalar, U08, 700, "", 1, 0
unusedAtTheEnd14 = scalar, U08, 701, "", 1, 0
unusedAtTheEnd15 = scalar, U08, 702, "", 1, 0
unusedAtTheEnd16 = scalar, U08, 703, "", 1, 0
unusedAtTheEnd17 = scalar, U08, 704, "", 1, 0
unusedAtTheEnd18 = scalar, U08, 705, "", 1, 0
unusedAtTheEnd19 = scalar, U08, 706, "", 1, 0
unusedAtTheEnd20 = scalar, U08, 707, "", 1, 0
unusedAtTheEnd21 = scalar, U08, 708, "", 1, 0
unusedAtTheEnd22 = scalar, U08, 709, "", 1, 0
unusedAtTheEnd23 = scalar, U08, 710, "", 1, 0
unusedAtTheEnd24 = scalar, U08, 711, "", 1, 0
unusedAtTheEnd25 = scalar, U08, 712, "", 1, 0
unusedAtTheEnd26 = scalar, U08, 713, "", 1, 0
unusedAtTheEnd27 = scalar, U08, 714, "", 1, 0
unusedAtTheEnd28 = scalar, U08, 715, "", 1, 0
unusedAtTheEnd29 = scalar, U08, 716, "", 1, 0
unusedAtTheEnd30 = scalar, U08, 717, "", 1, 0
unusedAtTheEnd31 = scalar, U08, 718, "", 1, 0
unusedAtTheEnd32 = scalar, U08, 719, "", 1, 0
unusedAtTheEnd33 = scalar, U08, 720, "", 1, 0
unusedAtTheEnd34 = scalar, U08, 721, "", 1, 0
unusedAtTheEnd35 = scalar, U08, 722, "", 1, 0
unusedAtTheEnd36 = scalar, U08, 723, "", 1, 0
unusedAtTheEnd37 = scalar, U08, 724, "", 1, 0
unusedAtTheEnd38 = scalar, U08, 725, "", 1, 0
unusedAtTheEnd39 = scalar, U08, 726, "", 1, 0
unusedAtTheEnd40 = scalar, U08, 727, "", 1, 0
unusedAtTheEnd41 = scalar, U08, 728, "", 1, 0
unusedAtTheEnd42 = scalar, U08, 729, "", 1, 0
unusedAtTheEnd43 = scalar, U08, 730, "", 1, 0
unusedAtTheEnd44 = scalar, U08, 731, "", 1, 0
unusedAtTheEnd45 = scalar, U08, 732, "", 1, 0
unusedAtTheEnd46 = scalar, U08, 733, "", 1, 0
unusedAtTheEnd47 = scalar, U08, 734, "", 1, 0
unusedAtTheEnd48 = scalar, U08, 735, "", 1, 0
unusedAtTheEnd49 = scalar, U08, 736, "", 1, 0
unusedAtTheEnd50 = scalar, U08, 737, "", 1, 0
unusedAtTheEnd51 = scalar, U08, 738, "", 1, 0
unusedAtTheEnd52 = scalar, U08, 739, "", 1, 0
unusedAtTheEnd53 = scalar, U08, 740, "", 1, 0
unusedAtTheEnd54 = scalar, U08, 741, "", 1, 0
unusedAtTheEnd55 = scalar, U08, 742, "", 1, 0
unusedAtTheEnd56 = scalar, U08, 743, "", 1, 0
unusedAtTheEnd57 = scalar, U08, 744, "", 1, 0
unusedAtTheEnd58 = scalar, U08, 745, "", 1, 0
unusedAtTheEnd59 = scalar, U08, 746, "", 1, 0
unusedAtTheEnd60 = scalar, U08, 747, "", 1, 0
unusedAtTheEnd61 = scalar, U08, 748, "", 1, 0
unusedAtTheEnd62 = scalar, U08, 749, "", 1, 0
unusedAtTheEnd63 = scalar, U08, 750, "", 1, 0
unusedAtTheEnd64 = scalar, U08, 751, "", 1, 0
unusedAtTheEnd65 = scalar, U08, 752, "", 1, 0
unusedAtTheEnd66 = scalar, U08, 753, "", 1, 0
unusedAtTheEnd67 = scalar, U08, 754, "", 1, 0
unusedAtTheEnd68 = scalar, U08, 755, "", 1, 0
unusedAtTheEnd69 = scalar, U08, 756, "", 1, 0
unusedAtTheEnd70 = scalar, U08, 757, "", 1, 0
unusedAtTheEnd71 = scalar, U08, 758, "", 1, 0
unusedAtTheEnd72 = scalar, U08, 759, "", 1, 0
unusedAtTheEnd73 = scalar, U08, 760, "", 1, 0
unusedAtTheEnd74 = scalar, U08, 761, "", 1, 0
unusedAtTheEnd75 = scalar, U08, 762, "", 1, 0
unusedAtTheEnd76 = scalar, U08, 763, "", 1, 0
unusedAtTheEnd77 = scalar, U08, 764, "", 1, 0
unusedAtTheEnd78 = scalar, U08, 765, "", 1, 0
unusedAtTheEnd79 = scalar, U08, 766, "", 1, 0
unusedAtTheEnd80 = scalar, U08, 767, "", 1, 0
unusedAtTheEnd81 = scalar, U08, 768, "", 1, 0
unusedAtTheEnd82 = scalar, U08, 769, "", 1, 0
unusedAtTheEnd83 = scalar, U08, 770, "", 1, 0
unusedAtTheEnd84 = scalar, U08, 771, "", 1, 0
unusedAtTheEnd85 = scalar, U08, 772, "", 1, 0
unusedAtTheEnd86 = scalar, U08, 773, "", 1, 0
unusedAtTheEnd87 = scalar, U08, 774, "", 1, 0
unusedAtTheEnd88 = scalar, U08, 775, "", 1, 0
unusedAtTheEnd89 = scalar, U08, 776, "", 1, 0
unusedAtTheEnd90 = scalar, U08, 777, "", 1, 0
unusedAtTheEnd91 = scalar, U08, 778, "", 1, 0
unusedAtTheEnd92 = scalar, U08, 779, "", 1, 0
unusedAtTheEnd93 = scalar, U08, 780, "", 1, 0
unusedAtTheEnd94 = scalar, U08, 781, "", 1, 0
unusedAtTheEnd95 = scalar, U08, 782, "", 1, 0
unusedAtTheEnd96 = scalar, U08, 783, "", 1, 0
unusedAtTheEnd97 = scalar, U08, 784, "", 1, 0
unusedAtTheEnd98 = scalar, U08, 785, "", 1, 0
unusedAtTheEnd99 = scalar, U08, 786, "", 1, 0
unusedAtTheEnd100 = scalar, U08, 787, "", 1, 0
unusedAtTheEnd101 = scalar, U08, 788, "", 1, 0
unusedAtTheEnd102 = scalar, U08, 789, "", 1, 0
unusedAtTheEnd103 = scalar, U08, 790, "", 1, 0
unusedAtTheEnd104 = scalar, U08, 791, "", 1, 0
unusedAtTheEnd105 = scalar, U08, 792, "", 1, 0
unusedAtTheEnd106 = scalar, U08, 793, "", 1, 0
unusedAtTheEnd107 = scalar, U08, 794, "", 1, 0
unusedAtTheEnd108 = scalar, U08, 795, "", 1, 0
unusedAtTheEnd109 = scalar, U08, 796, "", 1, 0
unusedAtTheEnd110 = scalar, U08, 797, "", 1, 0
unusedAtTheEnd111 = scalar, U08, 798, "", 1, 0
unusedAtTheEnd112 = scalar, U08, 799, "", 1, 0
unusedAtTheEnd113 = scalar, U08, 800, "", 1, 0
unusedAtTheEnd114 = scalar, U08, 801, "", 1, 0
unusedAtTheEnd115 = scalar, U08, 802, "", 1, 0
unusedAtTheEnd116 = scalar, U08, 803, "", 1, 0
unusedAtTheEnd117 = scalar, U08, 804, "", 1, 0
unusedAtTheEnd118 = scalar, U08, 805, "", 1, 0
unusedAtTheEnd119 = scalar, U08, 806, "", 1, 0
unusedAtTheEnd120 = scalar, U08, 807, "", 1, 0
unusedAtTheEnd121 = scalar, U08, 808, "", 1, 0
unusedAtTheEnd122 = scalar, U08, 809, "", 1, 0
unusedAtTheEnd123 = scalar, U08, 810, "", 1, 0
unusedAtTheEnd124 = scalar, U08, 811, "", 1, 0
unusedAtTheEnd125 = scalar, U08, 812, "", 1, 0
unusedAtTheEnd126 = scalar, U08, 813, "", 1, 0
unusedAtTheEnd127 = scalar, U08, 814, "", 1, 0
unusedAtTheEnd128 = scalar, U08, 815, "", 1, 0
unusedAtTheEnd129 = scalar, U08, 816, "", 1, 0
unusedAtTheEnd130 = scalar, U08, 817, "", 1, 0
unusedAtTheEnd131 = scalar, U08, 818, "", 1, 0
unusedAtTheEnd132 = scalar, U08, 819, "", 1, 0
unusedAtTheEnd133 = scalar, U08, 820, "", 1, 0
unusedAtTheEnd134 = scalar, U08, 821, "", 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
injectorHwIssue = bits, U32, 864, [0:0]
; total TS size = 868
baseDwell = scalar, F32, 868, "ms", 1,0
sparkDwell = scalar, F32, 872, "ms", 1,0
dwellAngle = scalar, F32, 876, "deg", 1,0
cltTimingCorrection = scalar, S16, 880, "deg", 0.01,0
timingIatCorrection = scalar, S16, 882, "deg", 0.01,0
timingPidCorrection = scalar, S16, 884, "deg", 0.01,0
baseIgnitionAdvance = scalar, S16, 886, "deg", 0.02, 0
correctedIgnitionAdvance = scalar, S16, 888, "deg", 0.02, 0
dwellVoltageCorrection = scalar, F32, 892, "", 1, 0
luaTimingAdd = scalar, F32, 896, "deg", 1, 0
luaTimingMult = scalar, F32, 900, "deg", 1, 0
luaIgnitionSkip = bits, U32, 904, [0:0]
; total TS size = 908
m_knockRetard = scalar, F32, 908, "", 1, 0
m_knockThreshold = scalar, F32, 912, "", 1, 0
m_knockCount = scalar, U32, 916, "", 1, 0
m_maximumRetard = scalar, F32, 920, "", 1, 0
; total TS size = 924
throttleUseWotModel = bits, U32, 924, [0:0]
throttleModelCrossoverAngle = scalar, S16, 928, "%", 0.01, 0
throttleEstimatedFlow = scalar, F32, 932, "g/s", 1, 0
; total TS size = 936
m_requested_pump = scalar, F32, 936, "", 1, 0
fuel_requested_percent = scalar, F32, 940, "", 1, 0
fuel_requested_percent_pi = scalar, F32, 944, "", 1, 0
noValve = bits, U32, 948, [0:0]
angleAboveMin = bits, U32, 948, [1:1]
isHpfpInactive = bits, U32, 948, [2:2]
m_pressureTarget_kPa = scalar, F32, 952, "", 1, 0
nextLobe = scalar, F32, 956, "", 1, 0
di_nextStart = scalar, F32, 960, "v", 1, 0
; total TS size = 964
m_deadtime = scalar, F32, 964, "", 1, 0
pressureDelta = scalar, F32, 968, "kPa", 1, 0
pressureRatio = scalar, F32, 972, "", 1, 0
; total TS size = 976
retardThresholdRpm = scalar, S32, 976, "", 1, 0
combinedConditions = bits, U32, 980, [0:0]
launchActivatePinState = bits, U32, 980, [1:1]
isLaunchCondition = bits, U32, 980, [2:2]
isSwitchActivated = bits, U32, 980, [3:3]
isClutchActivated = bits, U32, 980, [4:4]
isValidInputPin = bits, U32, 980, [5:5]
activateSwitchCondition = bits, U32, 980, [6:6]
rpmCondition = bits, U32, 980, [7:7]
speedCondition = bits, U32, 980, [8:8]
tpsCondition = bits, U32, 980, [9:9]
; total TS size = 984
isAntilagCondition = bits, U32, 984, [0:0]
ALSMinRPMCondition = bits, U32, 984, [1:1]
ALSMaxRPMCondition = bits, U32, 984, [2:2]
ALSMinCLTCondition = bits, U32, 984, [3:3]
ALSMaxCLTCondition = bits, U32, 984, [4:4]
ALSMaxThrottleIntentCondition = bits, U32, 984, [5:5]
isALSSwitchActivated = bits, U32, 984, [6:6]
ALSActivatePinState = bits, U32, 984, [7:7]
ALSSwitchCondition = bits, U32, 984, [8:8]
ALSTimerCondition = bits, U32, 984, [9:9]
fuelALSCorrection = scalar, F32, 988, "", 1, 0
timingALSCorrection = scalar, S16, 992, "deg", 0.01, 0
timingALSSkip = scalar, S16, 994, "deg", 0.01, 0
; total TS size = 996
isTpsInvalid = bits, U32, 996, [0:0]
m_shouldResetPid = bits, U32, 996, [1:1]
isBelowClosedLoopThreshold = bits, U32, 996, [2:2]
isNotClosedLoop = bits, U32, 996, [3:3]
isZeroRpm = bits, U32, 996, [4:4]
hasInitBoost = bits, U32, 996, [5:5]
rpmTooLow = bits, U32, 996, [6:6]
tpsTooLow = bits, U32, 996, [7:7]
mapTooLow = bits, U32, 996, [8:8]
luaTargetAdd = scalar, S16, 1000, "v", 0.5,0
boostOutput = scalar, S16, 1002, "percent", 0.01,0
luaTargetMult = scalar, F32, 1004, "v", 1,0
openLoopPart = scalar, F32, 1008, "v", 1,0
luaOpenLoopAdd = scalar, F32, 1012, "v", 1,0
boostControllerClosedLoopPart = scalar, S08, 1016, "%", 0.5,0
boostControlTarget = scalar, S16, 1018, "kPa", 0.03333333333333333,0
; total TS size = 1020
acButtonState = bits, U32, 1020, [0:0]
m_acEnabled = bits, U32, 1020, [1:1]
engineTooSlow = bits, U32, 1020, [2:2]
engineTooFast = bits, U32, 1020, [3:3]
noClt = bits, U32, 1020, [4:4]
engineTooHot = bits, U32, 1020, [5:5]
tpsTooHigh = bits, U32, 1020, [6:6]
isDisabledByLua = bits, U32, 1020, [7:7]
acCompressorState = bits, U32, 1020, [8:8]
latest_usage_ac_control = scalar, S32, 1024, "", 1, 0
acSwitchLastChangeTimeMs = scalar, S32, 1028, "", 1, 0
; total TS size = 1032
cranking = bits, U32, 1032, [0:0]
notRunning = bits, U32, 1032, [1:1]
disabledWhileEngineStopped = bits, U32, 1032, [2:2]
brokenClt = bits, U32, 1032, [3:3]
enabledForAc = bits, U32, 1032, [4:4]
hot = bits, U32, 1032, [5:5]
cold = bits, U32, 1032, [6:6]
; total TS size = 1036
isPrime = bits, U32, 1036, [0:0]
engineTurnedRecently = bits, U32, 1036, [1:1]
isFuelPumpOn = bits, U32, 1036, [2:2]
ignitionOn = bits, U32, 1036, [3:3]
; total TS size = 1040
isBenchTest = bits, U32, 1040, [0:0]
hasIgnitionVoltage = bits, U32, 1040, [1:1]
mainRelayState = bits, U32, 1040, [2:2]
delayedShutoffRequested = bits, U32, 1040, [3:3]
; total TS size = 1044
lua_fuelAdd = scalar, F32, 1044, "g", 1, 0
lua_fuelMult = scalar, F32, 1048, "", 1, 0
lua_clutchUpState = bits, U32, 1052, [0:0]
lua_brakePedalState = bits, U32, 1052, [1:1]
lua_acRequestState = bits, U32, 1052, [2:2]
lua_luaDisableEtb = bits, U32, 1052, [3:3]
lua_luaIgnCut = bits, U32, 1052, [4:4]
sd_tCharge = scalar, S16, 1056, "deg C", 0.01, 0
sd_tChargeK = scalar, F32, 1060, "", 1, 0
crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1064, "", 1, 0
crankingFuel_tpsCoefficient = scalar, F32, 1068, "", 1, 0
crankingFuel_durationCoefficient = scalar, F32, 1072, "", 1, 0
crankingFuel_fuel = scalar, U16, 1076, "mg", 0.01, 0
baroCorrection = scalar, F32, 1080, "", 1, 0
hellenBoardId = scalar, S16, 1084, "id", 1, 0
clutchUpState = bits, U32, 1088, [0:0]
clutchDownState = bits, U32, 1088, [1:1]
brakePedalState = bits, U32, 1088, [2:2]
startStopState = bits, U32, 1088, [3:3]
startStopStateToggleCounter = scalar, U32, 1092, "", 1, 0
egtValue1 = scalar, F32, 1096, "", 1, 0
egtValue2 = scalar, F32, 1100, "", 1, 0
desiredRpmLimit = scalar, S16, 1104, "rpm", 1, 0
fuelInjectionCounter = scalar, U32, 1108, "", 1, 0
sparkCounter = scalar, U32, 1112, "", 1, 0
fuelingLoad = scalar, F32, 1116, "", 1, 0
ignitionLoad = scalar, F32, 1120, "", 1, 0
veTableYAxis = scalar, U16, 1124, "%", 0.01, 0
; total TS size = 1128
tpsFrom = scalar, F32, 1128
tpsTo = scalar, F32, 1132
deltaTps = scalar, F32, 1136
extraFuel = scalar, F32, 1140, "", 1, 0
valueFromTable = scalar, F32, 1144, "", 1, 0
isAboveAccelThreshold = bits, U32, 1148, [0:0]
isBelowDecelThreshold = bits, U32, 1148, [1:1]
isTimeToResetAccumulator = bits, U32, 1148, [2:2]
isFractionalEnrichment = bits, U32, 1148, [3:3]
belowEpsilon = bits, U32, 1148, [4:4]
tooShort = bits, U32, 1148, [5:5]
fractionalInjFuel = scalar, F32, 1152, "", 1, 0
accumulatedValue = scalar, F32, 1156, "", 1, 0
maxExtraPerCycle = scalar, F32, 1160, "", 1, 0
maxExtraPerPeriod = scalar, F32, 1164, "", 1, 0
maxInjectedPerPeriod = scalar, F32, 1168, "", 1, 0
cycleCnt = scalar, S32, 1172, "", 1, 0
; total TS size = 1176
hwEventCounters1 = scalar, U32, 1176, "", 1, 0
hwEventCounters2 = scalar, U32, 1180, "", 1, 0
hwEventCounters3 = scalar, U32, 1184, "", 1, 0
hwEventCounters4 = scalar, U32, 1188, "", 1, 0
hwEventCounters5 = scalar, U32, 1192, "", 1, 0
hwEventCounters6 = scalar, U32, 1196, "", 1, 0
vvtCamCounter = scalar, U32, 1200, "", 1, 0
mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1204, "", 1, 0
mapVvt_MAP_AT_DIFF = scalar, F32, 1208, "", 1, 0
mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1212, "", 1, 0
mapVvt_map_peak = scalar, U08, 1213, "", 1, 0
currentEngineDecodedPhase = scalar, F32, 1216, "deg", 1, 0
triggerToothAngleError = scalar, F32, 1220, "deg", 1, 0
triggerIgnoredToothCount = scalar, U08, 1224, "", 1, 0
; total TS size = 1228
crankSynchronizationCounter = scalar, U32, 1228, "", 1, 0
vvtSyncGapRatio = scalar, F32, 1232, "", 1, 0
vvtToothDurations0 = scalar, U32, 1236, "us", 1, 0
vvtCurrentPosition = scalar, F32, 1240, "", 1, 0
triggerSyncGapRatio = scalar, F32, 1244, "", 1, 0
triggerStateIndex = scalar, U08, 1248, "", 1, 0
vvtCounter = scalar, U08, 1249, "", 1, 0
camResyncCounter = scalar, U08, 1250, "", 1, 0
vvtStateIndex = scalar, U08, 1251, "", 1, 0
; total TS size = 1252
m_hasSynchronizedPhase = bits, U32, 1252, [0:0]
; total TS size = 1256
wallFuelCorrection = scalar, F32, 1256, "", 1, 0
wallFuel = scalar, F32, 1260, "", 1, 0
; total TS size = 1264
idleState = bits, S32, 1264, [0:2], "not important"
currentIdlePosition = scalar, F32, 1268
baseIdlePosition = scalar, F32, 1272
iacByTpsTaper = scalar, F32, 1276
throttlePedalUpState = scalar, S32, 1280, "", 1, 0
mightResetPid = bits, U32, 1284, [0:0]
shouldResetPid = bits, U32, 1284, [1:1]
wasResetPid = bits, U32, 1284, [2:2]
mustResetPid = bits, U32, 1284, [3:3]
isCranking = bits, U32, 1284, [4:4]
isIacTableForCoasting = bits, U32, 1284, [5:5]
notIdling = bits, U32, 1284, [6:6]
needReset = bits, U32, 1284, [7:7]
isInDeadZone = bits, U32, 1284, [8:8]
isBlipping = bits, U32, 1284, [9:9]
useClosedLoop = bits, U32, 1284, [10:10]
badTps = bits, U32, 1284, [11:11]
looksLikeRunning = bits, U32, 1284, [12:12]
looksLikeCoasting = bits, U32, 1284, [13:13]
looksLikeCrankToIdle = bits, U32, 1284, [14:14]
isVerboseIAC = bits, U32, 1284, [15:15]
isIdleCoasting = bits, U32, 1284, [16:16]
targetRpmByClt = scalar, S32, 1288, "", 1, 0
targetRpmAcBump = scalar, S32, 1292, "", 1, 0
iacByRpmTaper = scalar, F32, 1296
luaAdd = scalar, F32, 1300
; total TS size = 1304
idlePosition = scalar, F32, 1304, "per", 1,0
trim = scalar, F32, 1308, "", 1, 0
luaAdjustment = scalar, F32, 1312, "per", 1,0
m_wastegatePosition = scalar, F32, 1316, "per", 1,0
etbFeedForward = scalar, F32, 1320
etbIntegralError = scalar, F32, 1324, "", 1, 0
etbCurrentTarget = scalar, F32, 1328, "%", 1, 0
etbCurrentAdjustedTarget = scalar, F32, 1332, "%", 1, 0
etbRevLimitActive = bits, U32, 1336, [0:0]
jamDetected = bits, U32, 1336, [1:1]
etbDutyRateOfChange = scalar, F32, 1340, "per", 1,0
etbDutyAverage = scalar, F32, 1344, "per", 1,0
etbTpsErrorCounter = scalar, U16, 1348, "count", 1,0
etbPpsErrorCounter = scalar, U16, 1350, "count", 1,0
etbErrorCode = scalar, S08, 1352, "", 1, 0
jamTimer = scalar, U16, 1354, "sec", 0.01, 0
; total TS size = 1356
faultCode = scalar, U08, 1356, "", 1, 0
heaterDuty = scalar, U08, 1357, "%", 1, 0
pumpDuty = scalar, U08, 1358, "%", 1, 0
tempC = scalar, U16, 1360, "C", 1, 0
nernstVoltage = scalar, U16, 1362, "V", 0.001, 0
esr = scalar, U16, 1364, "ohm", 1, 0
; total TS size = 1368
dcOutput0 = scalar, F32, 1368, "per", 1,0
isEnabled0_int = scalar, U08, 1372, "per", 1,0
isEnabled0 = bits, U32, 1376, [0:0]
; total TS size = 1380
value0 = scalar, U16, 1380, "value", 1,0
value1 = scalar, U16, 1382, "value", 1,0
errorRate = scalar, F32, 1384, "ratio", 1,0
; total TS size = 1388
time = { timeNow }
egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 }
wbo0_hasFault = { enableAemXSeries && (faultCode >= 3) }
[PcVariables]
tuneCrcPcVariable = continuousChannelValue, tuneCrc16
wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1;
wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0
gearCountArray = array, S08, [10], "Gear", 1, 0, -1, { 10 - 2 }, 0, noMsqSave
solenoidCountArray = array, U08, [6], "Solenoid", 1, 0, 1, 6, 0, noMsqSave
; wall of debug mode :)
; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields
; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL
debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output"
debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term"
debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error"
debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain"
debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain"
debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term"
debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", ""
debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain"
debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset"
debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger"
debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", ""
debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", ""
wboFaultCodeList = bits, U08, [0:3], "OK", "silent", "Unk", "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"
; TpsState
etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise"
[ConstantsExtensions]
; defaultValue is used to provide TunerStudio with a value to use in the case of
; the constant not yet being initialized. This is primarily important if the
; constant is used as a variable in the ini.
; defaultValue = constantName, value;
defaultValue = wueAfrTargetOffset, -1.5 -1.4 -1.15 -0.95 -0.775 -0.65 -0.5625 -0.5 -0.4375 -0.375 -0.3125 -0.25 -0.1875 -0.125 -0.0625 0
; this magic is best described in output_channels.txt search for 'maintainConstantValue'
; TPS 1 Primary
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
; TPS 1 Secondary
maintainConstantValue = tps1SecondaryMax, { (calibrationMode == 6 ) ? calibrationValue : tps1SecondaryMax }
maintainConstantValue = tps1SecondaryMin, { (calibrationMode == 7 ) ? calibrationValue : tps1SecondaryMin }
; TPS 2 Primary
maintainConstantValue = tps2Max, { (calibrationMode == 8 ) ? calibrationValue : tps2Max }
maintainConstantValue = tps2Min, { (calibrationMode == 9 ) ? calibrationValue : tps2Min }
; TPS 2 Secondary
maintainConstantValue = tps2SecondaryMax, { (calibrationMode == 10 ) ? calibrationValue : tps2SecondaryMax }
maintainConstantValue = tps2SecondaryMin, { (calibrationMode == 11 ) ? calibrationValue : tps2SecondaryMin }
; ETB Auto Gain Calibration
maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor }
maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor }
maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor }
maintainConstantValue = throttlePedalUpVoltage, { (calibrationMode == 12 ) ? calibrationValue : throttlePedalUpVoltage }
maintainConstantValue = throttlePedalSecondaryUpVoltage, { (calibrationMode == 12 ) ? calibrationValue2 : throttlePedalSecondaryUpVoltage }
maintainConstantValue = throttlePedalWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue : throttlePedalWOTVoltage }
maintainConstantValue = throttlePedalSecondaryWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue2 : throttlePedalSecondaryWOTVoltage }
requiresPowerCycle = boardUseCanTerminator
requiresPowerCycle = lps25BaroSensorScl
requiresPowerCycle = lps25BaroSensorSda
requiresPowerCycle = binarySerialTxPin
requiresPowerCycle = binarySerialRxPin
requiresPowerCycle = tunerStudioSerialSpeed
requiresPowerCycle = auxSerialRxPin
requiresPowerCycle = auxSerialTxPin
requiresPowerCycle = startStopButtonPin
requiresPowerCycle = startStopButtonMode
requiresPowerCycle = enableAemXSeries
requiresPowerCycle = etb_use_two_wires
requiresPowerCycle = etbFreq
requiresPowerCycle = etbFunctions1
requiresPowerCycle = etbFunctions2
requiresPowerCycle = idle_solenoidFrequency
requiresPowerCycle = boostPwmFrequency
requiresPowerCycle = alternatorPwmFrequency
requiresPowerCycle = vvtOutputFrequency1
requiresPowerCycle = vvtOutputFrequency2
requiresPowerCycle = vvtPins1
requiresPowerCycle = vvtPins2
requiresPowerCycle = vvtPins3
requiresPowerCycle = vvtPins4
requiresPowerCycle = auxAnalogInputs1
requiresPowerCycle = auxAnalogInputs2
requiresPowerCycle = auxAnalogInputs3
requiresPowerCycle = auxAnalogInputs4
requiresPowerCycle = auxAnalogInputs5
requiresPowerCycle = auxAnalogInputs6
requiresPowerCycle = auxAnalogInputs7
requiresPowerCycle = auxAnalogInputs8
readOnly = warning_message
defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8
readOnly = gearCountArray
defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8
readOnly = solenoidCountArray
[CurveEditor]
; xAxis = leftValue, rightValue, step
; yAxis = bottomValue, topValue, step
curve = knockThresholdCurve, "Engine knock threshold RPM based"
columnLabel = "RPM", "Threshold"
xAxis = 0, 8000, 9
yAxis = 0, 8, 10
xBins = knockNoiseRpmBins, RPMValue
yBins = knockBaseNoise
gauge = RPMGauge
curve = narrowToWideOxygenCurve, "Narrow to Wideband approximation"
columnLabel = "Voltage", "AFR"
xAxis = 0, 6, 10
yAxis = 0, 28, 10
xBins = narrowToWideOxygenBins
yBins = narrowToWideOxygen
#if LAMBDA
gauge = lambda1Gauge
#else
gauge = afr1Gauge
#endif
curve = scriptCurve1, "Script Curve #1"
columnLabel = "X", "Y"
xAxis = 0, 128, 10
yAxis = -155, 150, 10
xBins = scriptCurve1Bins
yBins = scriptCurve1
showTextValues = true
curve = scriptCurve2, "Script Curve #2"
columnLabel = "X", "Y"
xAxis = 0, 128, 10
yAxis = -150, 150, 10
xBins = scriptCurve2Bins
yBins = scriptCurve2
showTextValues = true
curve = scriptCurve3, "Script Curve #3"
columnLabel = "X", "Y"
xAxis = 0, 128, 10
yAxis = -5, 5, 10
xBins = scriptCurve3Bins
yBins = scriptCurve3
showTextValues = true
curve = scriptCurve4, "Script Curve #4"
columnLabel = "X", "Y"
xAxis = 0, 128, 10
yAxis = -5, 5, 10
xBins = scriptCurve4Bins
yBins = scriptCurve4
showTextValues = true
curve = scriptCurve5, "Script Curve #5"
columnLabel = "X", "Y"
xAxis = 0, 128, 10
yAxis = -5, 5, 10
xBins = scriptCurve5Bins
yBins = scriptCurve5
showTextValues = true
curve = scriptCurve6, "Script Curve #6"
columnLabel = "X", "Y"
xAxis = 0, 128, 10
yAxis = -5, 5, 10
xBins = scriptCurve6Bins
yBins = scriptCurve6
showTextValues = true
curve = dwellCorrection, "Dwell time base"
columnLabel = "RPM", "Dwell"
xAxis = 0, 8000, 9
yAxis = 0, 8, 9
xBins = sparkDwellRpmBins, RPMValue
yBins = sparkDwellValues
gauge = RPMGauge
curve = dwellVoltageCorrection, "Dwell voltage correction"
columnLabel = "Battery Volts", "Multiplier"
xAxis = 6, 16, 11
yAxis = 0, 3, 7
xBins = dwellVoltageCorrVoltBins, VBatt
yBins = dwellVoltageCorrValues
gauge = VBattGauge
curve = tpsTspRpmCorrection, "Transient RPM correction"
columnLabel = "RPM", "Multiplier"
xAxis = 6, 16, 11
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 = 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 = 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 adder"
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 = 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
; constant, variable
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
; constant, variable
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
; constant, variable
xBins = baroCorrRpmBins, RPMValue
yBins = baroCorrPressureBins, baroPressure
zBins = baroCorrTable
; gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1
; constant, variable
xBins = ignitionRpmBins, RPMValue
yBins = ignitionLoadBins, ignitionLoad
zBins = ignitionTable
; gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
table = ignAdder1Table, ignAdder1Map, "Ignition adder 1", 1
xBins = ignBlends1_rpmBins, RPMValue
yBins = ignBlends1_loadBins, ignitionLoad
zBins = ignBlends1_table
gridOrient = 250, 0, 340
table = ignAdder2Table, ignAdder2Map, "Ignition adder 2", 1
xBins = ignBlends2_rpmBins, RPMValue
yBins = ignBlends2_loadBins, ignitionLoad
zBins = ignBlends2_table
gridOrient = 250, 0, 340
table = ignAdder3Table, ignAdder3Map, "Ignition adder 3", 1
xBins = ignBlends3_rpmBins, RPMValue
yBins = ignBlends3_loadBins, ignitionLoad
zBins = ignBlends3_table
gridOrient = 250, 0, 340
table = ignAdder4Table, ignAdder4Map, "Ignition adder 4", 1
xBins = ignBlends4_rpmBins, RPMValue
yBins = ignBlends4_loadBins, ignitionLoad
zBins = ignBlends4_table
gridOrient = 250, 0, 340
table = veBlend1Table, veBlend1Map, "VE blend 1", 1
xBins = veBlends1_rpmBins, RPMValue
yBins = veBlends1_loadBins, fuelingLoad
zBins = veBlends1_table
gridOrient = 250, 0, 340
table = veBlend2Table, veBlend2Map, "VE blend 2", 1
xBins = veBlends2_rpmBins, RPMValue
yBins = veBlends2_loadBins, fuelingLoad
zBins = veBlends2_table
gridOrient = 250, 0, 340
table = veBlend3Table, veBlend3Map, "VE blend 3", 1
xBins = veBlends3_rpmBins, RPMValue
yBins = veBlends3_loadBins, fuelingLoad
zBins = veBlends3_table
gridOrient = 250, 0, 340
table = veBlend4Table, veBlend4Map, "VE blend 4", 1
xBins = veBlends4_rpmBins, RPMValue
yBins = veBlends4_loadBins, fuelingLoad
zBins = veBlends4_table
gridOrient = 250, 0, 340
table = boostOpenBlend1Table, boostOpenBlend1Map, "Boost open loop blend 1", 1
xBins = boostOpenLoopBlends1_rpmBins, RPMValue
yBins = boostOpenLoopBlends1_loadBins, TPSValue
zBins = boostOpenLoopBlends1_table
gridOrient = 250, 0, 340
table = boostOpenBlend2Table, boostOpenBlend2Map, "Boost open loop blend 2", 1
xBins = boostOpenLoopBlends2_rpmBins, RPMValue
yBins = boostOpenLoopBlends2_loadBins, TPSValue
zBins = boostOpenLoopBlends2_table
gridOrient = 250, 0, 340
table = boostClosedBlend1Table, boostClosedBlend1Map, "Boost closed loop blend 1", 1
xBins = boostClosedLoopBlends1_rpmBins, RPMValue
yBins = boostClosedLoopBlends1_loadBins, TPSValue
zBins = boostClosedLoopBlends1_table
gridOrient = 250, 0, 340
table = boostClosedBlend2Table, boostClosedBlend2Map, "Boost closed loop blend 2", 1
xBins = boostClosedLoopBlends2_rpmBins, RPMValue
yBins = boostClosedLoopBlends2_loadBins, TPSValue
zBins = boostClosedLoopBlends2_table
gridOrient = 250, 0, 340
table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1
; constant, variable
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
; constant, variable
xBins = veRpmBins, RPMValue
yBins = veLoadBins, veTableYAxis
zBins = veTable
; gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
table = idleVeTableTbl, idleVeTable, "Idle VE"
xBins = idleVeRpmBins, RPMValue
yBins = idleVeLoadBins, veTableYAxis
zBins = idleVeTable
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl1, fuelTrimMap1, "Fuel trim cyl 1", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims1_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl2, fuelTrimMap2, "Fuel trim cyl 2", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims2_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl3, fuelTrimMap3, "Fuel trim cyl 3", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims3_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl4, fuelTrimMap4, "Fuel trim cyl 4", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims4_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl5, fuelTrimMap5, "Fuel trim cyl 5", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims5_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl6, fuelTrimMap6, "Fuel trim cyl 6", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims6_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl7, fuelTrimMap7, "Fuel trim cyl 7", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims7_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl8, fuelTrimMap8, "Fuel trim cyl 8", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims8_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl9, fuelTrimMap9, "Fuel trim cyl 9", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims9_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl10, fuelTrimMap10, "Fuel trim cyl 10", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims10_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl11, fuelTrimMap11, "Fuel trim cyl 11", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims11_table
upDownLabel = "(RICHER)", "(LEANER)"
table = fuelTrimTbl12, fuelTrimMap12, "Fuel trim cyl 12", 1
xBins = fuelTrimRpmBins, RPMValue
yBins = fuelTrimLoadBins, veTableYAxis
zBins = fuelTrims12_table
upDownLabel = "(RICHER)", "(LEANER)"
table = ignTrimTbl1, ignTrimMap1, "Ign trim cyl 1", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims1_table
table = ignTrimTbl2, ignTrimMap2, "Ign trim cyl 2", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims2_table
table = ignTrimTbl3, ignTrimMap3, "Ign trim cyl 3", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims3_table
table = ignTrimTbl4, ignTrimMap4, "Ign trim cyl 4", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims4_table
table = ignTrimTbl5, ignTrimMap5, "Ign trim cyl 5", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims5_table
table = ignTrimTbl6, ignTrimMap6, "Ign trim cyl 6", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims6_table
table = ignTrimTbl7, ignTrimMap7, "Ign trim cyl 7", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims7_table
table = ignTrimTbl8, ignTrimMap8, "Ign trim cyl 8", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims8_table
table = ignTrimTbl9, ignTrimMap9, "Ign trim cyl 9", 1
xBins =ignTrimRpmBins, RPMValue
yBins =ignTrimLoadBins, ignitionLoad
zBins =ignTrims9_table
table = ignTrimTbl10, ignTrimMap10, "Ign trim cyl 10", 1
xBins = ignTrimRpmBins, RPMValue
yBins = ignTrimLoadBins, ignitionLoad
zBins = ignTrims10_table
table = ignTrimTbl11, ignTrimMap11, "Ign trim cyl 11", 1
xBins = ignTrimRpmBins, RPMValue
yBins = ignTrimLoadBins, ignitionLoad
zBins = ignTrims11_table
table = ignTrimTbl12, ignTrimMap12, "Ign trim cyl 12", 1
xBins = ignTrimRpmBins, RPMValue
yBins = ignTrimLoadBins, ignitionLoad
zBins = ignTrims12_table
table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1
xBins = mapEstimateRpmBins, RPMValue
yBins = mapEstimateTpsBins, TPSValue
zBins = mapEstimateTable
table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1
topicHelp = "fuelHelp"
; constant, variable
xBins = injPhaseRpmBins, RPMValue
yBins = injPhaseLoadBins, fuelingLoad
zBins = injectionPhase
; gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(Later)", "(Sooner)"
table = pedalToTpsTbl, pedalToTpsMap, "ETB Pedal to TPS", 1
; constant, variable
xBins = pedalToTpsRpmBins, RPMValue
yBins = pedalToTpsPedalBins, throttlePedalPosition
zBins = pedalToTpsTable
; gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(Later)", "(Sooner)"
table = throttle2TrimTbl, throttle2TrimMap, "ETB #2 Trim", 1
xBins = throttle2TrimRpmBins, RPMValue
yBins = throttle2TrimTpsBins, TPSValue
zBins = throttle2TrimTable
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
table = maxKnockRetardTbl, maxKnockRetardMap, "Max knock retard", 1
xBins = maxKnockRetardRpmBins, RPMValue
yBins = maxKnockRetardLoadBins, TPSValue
zBins = maxKnockRetardTable
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
#if LAMBDA
table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1
#else
table = afrTableTbl, afrTableMap, "Target AFR Table", 1
#endif
; constant, variable
xBins = lambdaRpmBins, RPMValue
yBins = lambdaLoadBins, afrTableYAxis
zBins = lambdaTable
; gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
table = iacPidMultTbl, iacPidMultMap, "IAC PID Multiplier Table", 1
; constant, variable
xBins = iacPidMultRpmBins, RPMValue
yBins = iacPidMultLoadBins, fuelingLoad
zBins = iacPidMultTable
; gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(Later)", "(Sooner)"
table = gppwm1Tbl, gppwm1Map, "GP#1", 1
xyLabels = "RPM", ""
xBins = gppwm1_rpmBins, 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 = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1
xBins = solenoidCountArray, tcuCurrentGear
yBins = gearCountArray, tcuCurrentGear
zBins = tcuSolenoidTable
xyLabels = "Solenoid", "Gear"
table = hpfpTargetTable, hpfpTargetTableId, "HPFP Target Fuel Pressure", 1
xBins = hpfpTargetRpmBins, RPMValue
yBins = hpfpTargetLoadBins, veTableYAxis
zBins = hpfpTarget
table = hpfpCompensationTable, hpfpCompensationTableId, "HPFP Pump Compensation Factor", 1
xBins = hpfpCompensationRpmBins, RPMValue
yBins = hpfpCompensationLoadBins, running_fuel
zBins = hpfpCompensation
[GaugeConfigurations]
gaugeCategory = "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,"Ign: Dwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1
dwellAngleGauge = dwellAngle,"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"
idlePositionGauge = idlePosition,"ETB: idlePosition", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2
luaAdjustmentGauge = luaAdjustment,"ETB: luaAdjustment", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2
m_wastegatePositionGauge = m_wastegatePosition,"DC: wastegatePosition", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2
etbDutyRateOfChangeGauge = etbDutyRateOfChange,"ETB duty rate of change", "per", 0.0,25.0, 0.0,25.0, 0.0,25.0, 2,2
etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2
etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0
etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0
dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2
isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2
value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0
value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0
errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2
gaugeCategory = Trigger
triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0
triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3
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", 0, 30000, 0, 0, 30000, 30000, 0, 3
luaGauges2gauge = luaGauges2, "Lua Gauge 2", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 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 = idleAirValvePosition, "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 = Sensors - Extra 2
egt1Gauge = egt1, "EGT#1", "C", 0, 2000
egt2Gauge = egt2, "EGT#2", "C", 0, 2000
rpmAccelerationGa = rpmAcceleration, "rpm delta", "RPM/s", -2000, 2000, -2000, 2000, -2000, 2000, 0, 0
fuelTankLevelGauge = fuelTankLevel,"Fuel level", "%", 0, 100, 10, 20, 100, 100, 1, 1
wastegatePosGauge = wastegatePositionSensor, "Wastegate position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1
currentEnginePhaseGauge = currentEngineDecodedPhase, "Engine Phase", "deg", 0, 720, 0, 0, 720, 720, 0, 0
auxSpeed1Gauge = auxSpeed1, "Aux Freq Input1", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0
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
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
;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld
gaugeCategory = Sensors - Extra 1
VSSGauge = vehicleSpeedKph, "Vehicle Speed", "kmh", 0, 200, 0, 1, 3, 4, 1, 1
turboSpeedGauge = turboSpeed, "Turbocharger Speed", "hz", 0, 200, 0, 1, 3, 4, 1, 1
accelerationXGauge = accelerationX, "Acceleration: X", "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1
accelerationYGauge = accelerationY, "Acceleration: Y", "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1
accelerationZGauge = accelerationZ, "Acceleration: Z", "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1
accelerationRollGauge=accelerationRoll, "Acceleration: Roll", "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1
accelerationYawGauge=accelerationYaw, "Acceleration: Yaw", "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1
atmPresCGauge = baroPressure, "Barometric pressure", "kPa", 95, 105, 95,96, 104,105, 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
AuxL1Gauge = auxLinear1, "Aux linear #1", "", -100, 100, -100, -100, 100, 100, 2, 2
AuxL2Gauge = auxLinear2, "Aux linear #2", "", -100, 100, -100, -100, 100, 100, 2, 2
gaugeCategory = 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, "Ign: 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, "Ign: Coil duty cycle", "%", 0, 110, 0, 0, 90, 100, 1, 1
ignitionLoadGauge = ignitionLoad, "Ign: 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
actualLastInjectionGauge = actualLastInjection, "Fuel: Last inj pulse width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1
veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1
injectorLagMsGauge = injectorLagMs, "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
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, 3, 0
issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0
gaugeCategory = Transmission
desiredGearGauge = tcuDesiredGear, "TCU: Desired Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0
currentGearGauge = tcuCurrentGear, "Current Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0
detectedGearGauge = detectedGear, "Detected Gear", "gear", 0, 8, 0, 0, 8, 8, 0, 0
speedToRpmRatioGauge = speedToRpmRatio, "Gearbox Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4
ISSGauge = ISSValue, "TCU: Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0
tcRatioGauge = tcRatio, "TCU: Torque Converter Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4
shiftTimeGauge = lastShiftTime, "Last Shift Time", "S", 0, 2, 0, 0, 2, 2, 4, 4
gaugeCategory = Knock
knock1Gauge = knock1, "Knock Cyl 1", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock2Gauge = knock2, "Knock Cyl 2", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock3Gauge = knock3, "Knock Cyl 3", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock4Gauge = knock4, "Knock Cyl 4", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock5Gauge = knock5, "Knock Cyl 5", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock6Gauge = knock6, "Knock Cyl 6", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock9Gauge = knock9, "Knock Cyl 9", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock10Gauge = knock10, "Knock Cyl 10", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock11Gauge = knock11, "Knock Cyl 11", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock12Gauge = knock12, "Knock Cyl 12", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knockLevelGauge = knockLevel,"Knock level", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knockRetardGauge = 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
; todo: do we want to drop this line since we have "config error" feature thing below?
indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black
indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black
indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black
indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black
indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black
indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black
indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black
indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black
; this is required so that the "config error" feature works in TS
; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling
; you don't even have to show it by default
; DO NOT CHANGE THIS LINE
; DO NOT CHANGE THIS LINE
indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black
; DO NOT CHANGE THIS LINE
; DO NOT CHANGE THIS LINE
; minor info
indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black
indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black
indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black
; Line 2
; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg
indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black
indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black
indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black
indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black
indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white
indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white
indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black
indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black
indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black
indicator = { isAboveAccelThreshold }, "No TPS accel", "TPS accel active", white, black, yellow, black
; error codes
indicator = { isTpsError }, "TPS OK", "TPS error", white, black, red, black
; Line 3
; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg
indicator = { isTps2Error }, "TPS 2 OK", "TPS 2 error", white, black, red, black
indicator = { isPedalError }, "Pedal OK", "Pedal error", white, black, red, black
indicator = { isCltError }, "CLT OK", "CLT error", white, black, red, black
indicator = { isIatError }, "IAT OK", "IAT error", white, black, red, black
; not implemented
; indicator = { ind_map_error}, "map", "map error", white, black, red, black
indicator = { sd_present }, "No SD card", "SD card present", white, black, green, black
indicator = { sd_logging_internal }, "No SD logging", "SD logging", white, black, green, black
indicator = { sd_msd }, "No SD USB", "SD USB", white, black, green, black
indicator = { etbRevLimitActive }, "No ETB RPM Limit", "ETB RPM Limit", white, black, yellow, black
indicator = { wbo0_hasFault }, { WBO0: bitStringValue(wboFaultCodeList, faultCode)}, { WBO0: bitStringValue(wboFaultCodeList, faultCode)}, white, black, red, black
; indicator = { isInjectionEnabled && fuelCutReason == 0 }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, white, black, white, black
; indicator = { isIgnitionEnabled && sparkCutReason == 0 }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, white, black, white, black
; looks like TS would append four system indicators below: Data Logging, ???, Not Connected, Protocol Error
[KeyActions]
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
entry = sd_present, "SD: Present", int, "%d"
entry = sd_logging_internal, "SD: Logging", int, "%d"
entry = triggerScopeReady, "triggerScopeReady", int, "%d"
entry = antilagTriggered, "antilagTriggered", int, "%d"
entry = isFanOn, "Radiator Fan", int, "%d"
entry = isO2HeaterOn, "isO2HeaterOn", int, "%d"
entry = checkEngine, "checkEngine", int, "%d"
entry = needBurn, "needBurn", int, "%d"
entry = sd_msd, "SD: MSD", int, "%d"
entry = isFan2On, "Radiator Fan 2", int, "%d"
entry = 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 = isIdleClosedLoop, "Idle: Closed Loop", int, "%d"
entry = injectorFault, "Injector Fault", int, "%d"
entry = ignitionFault, "Ignition Fault", 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 = knockRetard, "Knock: Retard", float, "%.3f"
entry = VBatt, "VBatt", float, "%.3f"
entry = oilPressure, "Oil Pressure", float, "%.3f"
entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f"
entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f"
entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f"
entry = veValue, "Fuel: VE", float, "%.3f"
entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d"
entry = injectorLagMs, "Fuel: injector lag", float, "%.3f"
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, "Ign: Mode", int, "%d"
entry = currentInjectionMode, "Fuel: Injection mode", int, "%d"
entry = coilDutyCycle, "Ign: Coil duty cycle", float, "%.3f"
entry = idleAirValvePosition, "Idle: Position", 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 = knockLevel, "Knock: Current level", 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 = accelerationX, "Acceleration: X", float, "%.3f"
entry = accelerationY, "Acceleration: Y", 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 = tsConfigVersion, "tsConfigVersion", int, "%d"
entry = calibrationValue, "calibrationValue", float, "%.3f"
entry = calibrationMode, "calibrationMode", int, "%d"
entry = idleTargetPosition, "Idle: Stepper target position", int, "%d"
entry = totalTriggerErrorCounter, "Trigger Error Counter", int, "%d"
entry = orderingErrorCounter, "orderingErrorCounter", int, "%d"
entry = warningCounter, "Warning: counter", int, "%d"
entry = lastErrorCode, "Warning: last", int, "%d"
entry = recentErrorCode1, "recentErrorCode 1", int, "%d"
entry = recentErrorCode2, "recentErrorCode 2", int, "%d"
entry = recentErrorCode3, "recentErrorCode 3", int, "%d"
entry = recentErrorCode4, "recentErrorCode 4", int, "%d"
entry = recentErrorCode5, "recentErrorCode 5", int, "%d"
entry = recentErrorCode6, "recentErrorCode 6", int, "%d"
entry = recentErrorCode7, "recentErrorCode 7", int, "%d"
entry = recentErrorCode8, "recentErrorCode 8", int, "%d"
entry = debugFloatField1, "debugFloatField1", float, "%.3f"
entry = debugFloatField2, "debugFloatField2", float, "%.3f"
entry = debugFloatField3, "debugFloatField3", float, "%.3f"
entry = debugFloatField4, "debugFloatField4", float, "%.3f"
entry = debugFloatField5, "debugFloatField5", float, "%.3f"
entry = debugFloatField6, "debugFloatField6", float, "%.3f"
entry = debugFloatField7, "debugFloatField7", float, "%.3f"
entry = debugIntField1, "debugIntField1", int, "%d"
entry = debugIntField2, "debugIntField2", int, "%d"
entry = debugIntField3, "debugIntField3", int, "%d"
entry = debugIntField4, "debugIntField4", int, "%d"
entry = debugIntField5, "debugIntField5", int, "%d"
entry = egt1, "EGT 1", int, "%d"
entry = egt2, "EGT 2", int, "%d"
entry = egt3, "EGT 3", int, "%d"
entry = egt4, "EGT 4", int, "%d"
entry = egt5, "EGT 5", int, "%d"
entry = egt6, "EGT 6", int, "%d"
entry = egt7, "EGT 7", int, "%d"
entry = egt8, "EGT 8", int, "%d"
entry = rawTps1Primary, "rawTps1Primary", float, "%.3f"
entry = rawPpsPrimary, "rawPpsPrimary", float, "%.3f"
entry = rawClt, "rawClt", float, "%.3f"
entry = rawIat, "rawIat", float, "%.3f"
entry = rawOilPressure, "rawOilPressure", float, "%.3f"
entry = fuelClosedLoopBinIdx, "fuelClosedLoopBinIdx", int, "%d"
entry = tcuCurrentGear, "Current Gear", int, "%d"
entry = rawPpsSecondary, "rawPpsSecondary", float, "%.3f"
entry = knock1, "Knock: Cyl 1", int, "%d"
entry = knock2, "Knock: Cyl 2", int, "%d"
entry = knock3, "Knock: Cyl 3", int, "%d"
entry = knock4, "Knock: Cyl 4", int, "%d"
entry = knock5, "Knock: Cyl 5", int, "%d"
entry = knock6, "Knock: Cyl 6", int, "%d"
entry = knock7, "Knock: Cyl 7", int, "%d"
entry = knock8, "Knock: Cyl 8", int, "%d"
entry = knock9, "Knock: Cyl 9", int, "%d"
entry = knock10, "Knock: Cyl 10", int, "%d"
entry = knock11, "Knock: Cyl 11", int, "%d"
entry = knock12, "Knock: Cyl 12", int, "%d"
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 = accelerationZ, "Acceleration: Z", float, "%.3f"
entry = accelerationRoll, "Acceleration: Roll", float, "%.3f"
entry = accelerationYaw, "Acceleration: Yaw", 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 = isMainRelayOn, "isMainRelayOn", int, "%d"
entry = isUsbConnected, "isUsbConnected", int, "%d"
entry = luaInvocationCounter, "Lua: Tick counter", int, "%d"
entry = luaLastCycleDuration, "Lua: Last tick duration", int, "%d"
entry = testBenchIter, "testBenchIter", int, "%d"
entry = tcu_currentRange, "TCU: Current Range", int, "%d"
entry = tcRatio, "TCU: Torque Converter Ratio", float, "%.3f"
entry = lastShiftTime, "lastShiftTime", float, "%.3f"
entry = vssEdgeCounter, "vssEdgeCounter", int, "%d"
entry = issEdgeCounter, "issEdgeCounter", int, "%d"
entry = auxLinear1, "Aux linear #1", float, "%.3f"
entry = auxLinear2, "Aux linear #2", float, "%.3f"
entry = dfcoActive, "dfcoActive", int, "%d"
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 = 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, "vvtChannel1", int, "%d"
entry = vvtChannel2, "vvtChannel2", int, "%d"
entry = vvtChannel3, "vvtChannel3", int, "%d"
entry = vvtChannel4, "vvtChannel4", int, "%d"
entry = outputRequestPeriod, "outputRequestPeriod", int, "%d"
entry = mapFast, "mapFast", float, "%.3f"
entry = luaGauges1, "Lua: Gauge 1", float, "%.3f"
entry = luaGauges2, "Lua: Gauge 2", float, "%.3f"
entry = rawMaf2, "rawMaf2", float, "%.3f"
entry = mafMeasured2, "MAF #2", float, "%.3f"
entry = vehicleSpeedKph, "Vehicle Speed", float, "%.3f"
entry = Gego, "Gego", 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 = injectorHwIssue, "injectorHwIssue", int, "%d"
entry = baseDwell, "Ignition: base dwell", float, "%.3f"
entry = sparkDwell, "Ign: Dwell", float, "%.3f"
entry = dwellAngle, "Ignition: dwell duration", float, "%.3f"
entry = cltTimingCorrection, "Ign: CLT correction", float, "%.3f"
entry = timingIatCorrection, "Ign: IAT correction", float, "%.3f"
entry = timingPidCorrection, "Idle: Timing adjustment", float, "%.3f"
entry = baseIgnitionAdvance, "Ign: Timing", float, "%.3f"
entry = correctedIgnitionAdvance, "Timing: ignition", 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_knockRetard, "Knock Degrees retarded", float, "%.3f"
entry = m_knockThreshold, "Knock Retard Threshold", float, "%.3f"
entry = m_knockCount, "Knock Count", int, "%d"
entry = m_maximumRetard, "m_maximumRetard", float, "%.3f"
entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d"
entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f"
entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f"
entry = 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, "injectorLag(VBatt)", float, "%.3f"
entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f"
entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f"
entry = retardThresholdRpm, "retardThresholdRpm", int, "%d"
entry = combinedConditions, "combinedConditions", int, "%d"
entry = launchActivatePinState, "launchActivatePinState", int, "%d"
entry = isLaunchCondition, "isLaunchCondition", int, "%d"
entry = isSwitchActivated, "isSwitchActivated", int, "%d"
entry = isClutchActivated, "isClutchActivated", int, "%d"
entry = isValidInputPin, "isValidInputPin", int, "%d"
entry = activateSwitchCondition, "activateSwitchCondition", int, "%d"
entry = rpmCondition, "rpmCondition", int, "%d"
entry = speedCondition, "speedCondition", int, "%d"
entry = tpsCondition, "tpsCondition", int, "%d"
entry = isAntilagCondition, "isAntilagCondition", int, "%d"
entry = ALSMinRPMCondition, "ALSMinRPMCondition", int, "%d"
entry = ALSMaxRPMCondition, "ALSMaxRPMCondition", int, "%d"
entry = ALSMinCLTCondition, "ALSMinCLTCondition", int, "%d"
entry = ALSMaxCLTCondition, "ALSMaxCLTCondition", int, "%d"
entry = ALSMaxThrottleIntentCondition, "ALSMaxThrottleIntentCondition", int, "%d"
entry = isALSSwitchActivated, "isALSSwitchActivated", int, "%d"
entry = ALSActivatePinState, "ALSActivatePinState", int, "%d"
entry = ALSSwitchCondition, "ALSSwitchCondition", int, "%d"
entry = ALSTimerCondition, "ALSTimerCondition", int, "%d"
entry = fuelALSCorrection, "fuelALSCorrection", float, "%.3f"
entry = timingALSCorrection, "timingALSCorrection", float, "%.3f"
entry = 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 = luaTargetAdd, "Boost: Lua target add", float, "%.3f"
entry = boostOutput, "Boost: Output", float, "%.3f"
entry = luaTargetMult, "Boost: Lua target mult", float, "%.3f"
entry = openLoopPart, "Boost: Open loop", float, "%.3f"
entry = luaOpenLoopAdd, "Boost: Lua open loop add", float, "%.3f"
entry = boostControllerClosedLoopPart, "Boost: Closed loop", float, "%.3f"
entry = boostControlTarget, "Boost: Target", float, "%.3f"
entry = acButtonState, "AC switch", int, "%d"
entry = m_acEnabled, "AC enabled", int, "%d"
entry = engineTooSlow, "AC engine too slow", int, "%d"
entry = engineTooFast, "AC engine too fast", int, "%d"
entry = noClt, "AC no CLT", int, "%d"
entry = engineTooHot, "AC engine too hot", int, "%d"
entry = tpsTooHigh, "AC tps too high", int, "%d"
entry = isDisabledByLua, "AC disabled by Lua", int, "%d"
entry = acCompressorState, "AC compressor on", int, "%d"
entry = latest_usage_ac_control, "AC latest activity", int, "%d"
entry = acSwitchLastChangeTimeMs, "acSwitchLastChangeTimeMs", int, "%d"
entry = cranking, "cranking", int, "%d"
entry = notRunning, "notRunning", int, "%d"
entry = disabledWhileEngineStopped, "disabledWhileEngineStopped", int, "%d"
entry = brokenClt, "brokenClt", int, "%d"
entry = enabledForAc, "enabledForAc", int, "%d"
entry = hot, "hot", int, "%d"
entry = cold, "cold", int, "%d"
entry = isPrime, "isPrime", int, "%d"
entry = engineTurnedRecently, "engineTurnedRecently", int, "%d"
entry = isFuelPumpOn, "isFuelPumpOn", int, "%d"
entry = ignitionOn, "ignitionOn", int, "%d"
entry = isBenchTest, "isBenchTest", int, "%d"
entry = hasIgnitionVoltage, "hasIgnitionVoltage", int, "%d"
entry = mainRelayState, "mainRelayState", int, "%d"
entry = delayedShutoffRequested, "delayedShutoffRequested", int, "%d"
entry = lua_fuelAdd, "Lua: Fuel add", float, "%.3f"
entry = lua_fuelMult, "Lua: Fuel mult", float, "%.3f"
entry = lua_clutchUpState, "lua_clutchUpState", int, "%d"
entry = lua_brakePedalState, "lua_brakePedalState", int, "%d"
entry = lua_acRequestState, "lua_acRequestState", int, "%d"
entry = lua_luaDisableEtb, "lua_luaDisableEtb", int, "%d"
entry = lua_luaIgnCut, "lua_luaIgnCut", int, "%d"
entry = sd_tCharge, "Air: Charge temperature estimate", float, "%.3f"
entry = sd_tChargeK, "Air: Charge temperature estimate K", float, "%.3f"
entry = crankingFuel_coolantTemperatureCoefficient, "Fuel: cranking CLT mult", float, "%.3f"
entry = crankingFuel_tpsCoefficient, "Fuel: cranking TPS mult", float, "%.3f"
entry = crankingFuel_durationCoefficient, "Fuel: cranking duration mult", float, "%.3f"
entry = crankingFuel_fuel, "Fuel: Cranking cycle mass", float, "%.3f"
entry = baroCorrection, "Fuel: Barometric pressure mult", float, "%.3f"
entry = hellenBoardId, "Detected Board ID", int, "%d"
entry = clutchUpState, "Clutch: up", int, "%d"
entry = clutchDownState, "Clutch: down", int, "%d"
entry = brakePedalState, "Brake switch", int, "%d"
entry = startStopState, "startStopState", int, "%d"
entry = startStopStateToggleCounter, "startStopStateToggleCounter", int, "%d"
entry = egtValue1, "egtValue1", float, "%.3f"
entry = egtValue2, "egtValue2", float, "%.3f"
entry = desiredRpmLimit, "User-defined RPM hard limit", int, "%d"
entry = fuelInjectionCounter, "Fuel: Injection counter", int, "%d"
entry = sparkCounter, "Ign: Spark counter", int, "%d"
entry = fuelingLoad, "Fuel: Load", float, "%.3f"
entry = ignitionLoad, "Ign: Load", float, "%.3f"
entry = veTableYAxis, "veTableYAxis", float, "%.3f"
entry = tpsFrom, "Fuel: TPS AE from", float, "%.3f"
entry = tpsTo, "Fuel: TPS AE to", float, "%.3f"
entry = deltaTps, "Fuel: TPS AE change", float, "%.3f"
entry = extraFuel, "extraFuel", float, "%.3f"
entry = valueFromTable, "valueFromTable", float, "%.3f"
entry = isAboveAccelThreshold, "Fuel: TPS AE Active", int, "%d"
entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d"
entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d"
entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d"
entry = belowEpsilon, "Accel: below threshold", int, "%d"
entry = tooShort, "Accel: too short", int, "%d"
entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f"
entry = accumulatedValue, "accumulatedValue", float, "%.3f"
entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f"
entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f"
entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f"
entry = cycleCnt, "cycleCnt", int, "%d"
entry = hwEventCounters1, "Hardware events since boot 1", int, "%d"
entry = hwEventCounters2, "Hardware events since boot 2", int, "%d"
entry = hwEventCounters3, "Hardware events since boot 3", int, "%d"
entry = hwEventCounters4, "Hardware events since boot 4", int, "%d"
entry = hwEventCounters5, "Hardware events since boot 5", int, "%d"
entry = hwEventCounters6, "Hardware events since boot 6", int, "%d"
entry = vvtCamCounter, "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 = crankSynchronizationCounter, "sync: Crank sync counter", int, "%d"
entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f"
entry = vvtToothDurations0, "vvtToothDurations0", int, "%d"
entry = vvtCurrentPosition, "vvtCurrentPosition", float, "%.3f"
entry = triggerSyncGapRatio, "Trigger Sync Latest Ratio", float, "%.3f"
entry = triggerStateIndex, "triggerStateIndex", int, "%d"
entry = vvtCounter, "vvtCounter", int, "%d"
entry = camResyncCounter, "camResyncCounter", int, "%d"
entry = vvtStateIndex, "vvtStateIndex", int, "%d"
entry = m_hasSynchronizedPhase, "m_hasSynchronizedPhase", int, "%d"
entry = wallFuelCorrection, "fuel wallwetting injection time", float, "%.3f"
entry = wallFuel, "Fuel on the wall", float, "%.3f"
entry = idleState, "idleState", int, "%d"
entry = currentIdlePosition, "idle: current position", float, "%.3f"
entry = baseIdlePosition, "idle: base value", 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 = isVerboseIAC, "isVerboseIAC", int, "%d"
entry = isIdleCoasting, "idle: coasting", int, "%d"
entry = targetRpmByClt, "idle: target by CLT", int, "%d"
entry = targetRpmAcBump, "idle: A/C bump", int, "%d"
entry = iacByRpmTaper, "idle: iacByRpmTaper portion", float, "%.3f"
entry = luaAdd, "idle: Lua Adder", float, "%.3f"
entry = idlePosition, "ETB: idlePosition", float, "%.3f"
entry = trim, "ETB: trim", float, "%.3f"
entry = luaAdjustment, "ETB: luaAdjustment", float, "%.3f"
entry = m_wastegatePosition, "DC: wastegatePosition", float, "%.3f"
entry = etbFeedForward, "etbFeedForward", float, "%.3f"
entry = etbIntegralError, "etbIntegralError", float, "%.3f"
entry = etbCurrentTarget, "etbCurrentTarget", float, "%.3f"
entry = etbCurrentAdjustedTarget, "etbCurrentAdjustedTarget", float, "%.3f"
entry = etbRevLimitActive, "etbRevLimitActive", int, "%d"
entry = jamDetected, "jamDetected", int, "%d"
entry = etbDutyRateOfChange, "ETB duty rate of change", float, "%.3f"
entry = etbDutyAverage, "ETB average duty", float, "%.3f"
entry = etbTpsErrorCounter, "ETB TPS error counter", int, "%d"
entry = etbPpsErrorCounter, "ETB pedal error counter", int, "%d"
entry = etbErrorCode, "etbErrorCode", int, "%d"
entry = jamTimer, "ETB jam timer", float, "%.3f"
entry = faultCode, "WBO: Fault code", int, "%d"
entry = heaterDuty, "WBO: Heater duty", int, "%d"
entry = pumpDuty, "WBO: Pump duty", int, "%d"
entry = tempC, "WBO: Temperature", int, "%d"
entry = nernstVoltage, "WBO: Nernst Voltage", float, "%.3f"
entry = esr, "WBO: ESR", int, "%d"
entry = dcOutput0, "DC: output0", float, "%.3f"
entry = isEnabled0_int, "DC: en0", int, "%d"
entry = isEnabled0, "isEnabled0", int, "%d"
entry = value0, "ETB: SENT value0", int, "%d"
entry = value1, "ETB: SENT value1", int, "%d"
entry = errorRate, "ETB: SENT error rate", float, "%.3f"
[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}
groupMenu = "Cylinder fuel trims"
groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1"
groupChildMenu = fuelTrimTbl2, "Fuel trim cyl 2"
groupChildMenu = fuelTrimTbl3, "Fuel trim cyl 3"
groupChildMenu = fuelTrimTbl4, "Fuel trim cyl 4"
groupChildMenu = fuelTrimTbl5, "Fuel trim cyl 5"
groupChildMenu = fuelTrimTbl6, "Fuel trim cyl 6"
groupChildMenu = fuelTrimTbl7, "Fuel trim cyl 7"
groupChildMenu = fuelTrimTbl8, "Fuel trim cyl 8"
groupChildMenu = fuelTrimTbl9, "Fuel trim cyl 9"
groupChildMenu = fuelTrimTbl10, "Fuel trim cyl 10"
groupChildMenu = fuelTrimTbl11, "Fuel trim cyl 11"
groupChildMenu = fuelTrimTbl12, "Fuel trim cyl 12"
subMenu = std_separator
# Air mass model
subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1}
groupMenu = "VE blend tables"
groupChildMenu = veBlend1Cfg, "Adder 1 bias", 0, {isInjectionEnabled}
groupChildMenu = veBlend1Table, "VE adder 1", 0, { isInjectionEnabled && veBlends1_blendParameter != 0 }
groupChildMenu = veBlend2Cfg, "Adder 2 bias", 0, {isInjectionEnabled}
groupChildMenu = veBlend2Table, "VE adder 2", 0, { isInjectionEnabled && veBlends2_blendParameter != 0 }
groupChildMenu = veBlend3Cfg, "Adder 3 bias", 0, {isInjectionEnabled}
groupChildMenu = veBlend3Table, "VE adder 3", 0, { isInjectionEnabled && veBlends3_blendParameter != 0 }
groupChildMenu = veBlend4Cfg, "Adder 4 bias", 0, {isInjectionEnabled}
groupChildMenu = veBlend4Table, "VE adder 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 = 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, "Adder 1 bias", 0, {isIgnitionEnabled}
groupChildMenu = ignAdder1Table, "Ignition adder 1", 0, { isIgnitionEnabled && ignBlends1_blendParameter != 0 }
groupChildMenu = ignAdder2Cfg, "Adder 2 bias", 0, {isIgnitionEnabled}
groupChildMenu = ignAdder2Table, "Ignition adder 2", 0, { isIgnitionEnabled && ignBlends2_blendParameter != 0 }
groupChildMenu = ignAdder3Cfg, "Adder 3 bias", 0, {isIgnitionEnabled}
groupChildMenu = ignAdder3Table, "Ignition adder 3", 0, { isIgnitionEnabled && ignBlends3_blendParameter != 0 }
groupChildMenu = ignAdder4Cfg, "Adder 4 bias", 0, {isIgnitionEnabled}
groupChildMenu = ignAdder4Table, "Ignition adder 4", 0, { isIgnitionEnabled && ignBlends4_blendParameter != 0 }
groupMenu = "Cylinder ign trims"
groupChildMenu = ignTrimTbl1, "Ignition trim cyl 1"
groupChildMenu = ignTrimTbl2, "Ignition trim cyl 2"
groupChildMenu = ignTrimTbl3, "Ignition trim cyl 3"
groupChildMenu = ignTrimTbl4, "Ignition trim cyl 4"
groupChildMenu = ignTrimTbl5, "Ignition trim cyl 5"
groupChildMenu = ignTrimTbl6, "Ignition trim cyl 6"
groupChildMenu = ignTrimTbl7, "Ignition trim cyl 7"
groupChildMenu = ignTrimTbl8, "Ignition trim cyl 8"
groupChildMenu = ignTrimTbl9, "Ignition trim cyl 9"
groupChildMenu = ignTrimTbl10, "Ignition trim cyl 10"
groupChildMenu = ignTrimTbl11, "Ignition trim cyl 11"
groupChildMenu = ignTrimTbl12, "Ignition trim cyl 12"
subMenu = std_separator
subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1}
menu = "&Cranking"
subMenu = crankingDialog, "Cranking settings"
subMenu = postCrankingEnrichment, "After-start enrichment"
subMenu = primingFuelPulsePanel, "Priming pulse"
subMenu = std_separator
subMenu = crankingCltCurve, "Fuel CLT multiplier"
subMenu = crankingCltCurveE100, "Fuel CLT multiplier (Flex Fuel E85)", 0, { flexSensorPin != 0 && flexCranking }
subMenu = crankingDurationCurve, "Fuel duration multiplier"
subMenu = crankingTpsCurve, "Fuel TPS multiplier"
subMenu = std_separator
subMenu = crankingAdvanceCurve, "Cranking ignition advance", 0, {useSeparateAdvanceForCranking == 1}
subMenu = std_separator
subMenu = cltCrankingCurve, "Cranking IAC CLT multiplier", 0, {overrideCrankingIacSetting == 1}
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"
# TODO finish https://github.com/rusefi/rusefi/issues/4861 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"
# users are confused by TCU dialogs. open question how to repackage as pre-alpha
# subMenu = std_separator
# subMenu = tcuControls, "Transmission Settings"
# subMenu = gearControls, "Gear Selection Settings"
# subMenu = inputSpeedSensor, "Input Speed Sensor"
# subMenu = tcuSolenoidTableTbl, "Shift Solenoids"
# subMenu = tccCurves, "TCC Lock/Unlock Speed"
# subMenu = pcPerGearDialog, "Line Pressure Per Gear"
# subMenu = pcPerShiftDialog, "Line Pressure Per Shift"
# subMenu = 32Dialog, "3-2 Shift Solenoid Percent by Speed"
menu = "&Sensors"
# Base analog input settings
subMenu = otherSensorInputs, "Misc sensors"
subMenu = analogInputSettings, "Analog input settings"
subMenu = std_separator
# Thermistors
subMenu = cltSensor, "CLT sensor"
subMenu = iatSensor, "IAT sensor"
subMenu = auxTempSensor1Sensor, "AuxTemp1 sensor"
subMenu = auxTempSensor2Sensor, "AuxTemp2 sensor"
subMenu = std_separator
# TPS/pedal
subMenu = tpsSensor, "TPS"
subMenu = pedalSensor, "Accelerator pedal"
subMenu = std_separator
# MAP/Baro
subMenu = mapSettings, "MAP sensor"
subMenu = mapCurves, "MAP sampling"
subMenu = baroSettings, "Baro sensor"
subMenu = std_separator
# MAF
subMenu = mafSettings, "MAF sensor"
subMenu = mafDecodingCurve, "MAF transfer function", 0, {mafAdcChannel != 0 }
subMenu = std_separator
# O2 sensor(s)
subMenu = egoSettings, "EGO sensor"
subMenu = widebandConfig, "rusEFI Wideband Controller", 0, { canReadEnabled && canWriteEnabled }
subMenu = narrowToWideOxygenCurve, "Narrow to Wideband approximation"
subMenu = std_separator
# Misc sensors
subMenu = vrThreshold, "VR Sensor Threshold"
subMenu = speedSensor, "Vehicle speed sensor"
subMenu = oilPressureSensor, "Oil pressure"
subMenu = fuelPressureSensor, "Fuel pressure"
subMenu = fuelLevelDialog, "Fuel level sensor"
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 = spiFunction, "SPI"
subMenu = monitoringSettings, "rusEFI console"
subMenu = std_separator
subMenu = canBusMain, "CAN Bus Communication"
subMenu = sdCard, "SD Card Logger"
subMenu = connection, "Connection"
subMenu = tle8888, "TLE8888"
subMenu = allPins1, "Full pinout 1/3"
subMenu = allPins2, "Full pinout 2/3"
subMenu = allPins3_1_and_2 "Full pinout 3/3"
subMenu = std_separator
# EXPERIMENTAL FEATURES
subMenu = mc33Dialog, "PT2001 control"
subMenu = hpfpCamDialog, "HPFP Cam Configuration"
subMenu = hpfpPumpDialog, "HPFP Pump Configuration", {hpfpCamLobes != 0}
subMenu = hpfpTargetTable, "HPFP Target Pressure", {hpfpCamLobes != 0}
subMenu = hpfpCompensationTable, "HPFP Pump Compensation", {hpfpCamLobes != 0}
subMenu = std_separator
subMenu = fancyHardwareDialog, "Fancy Hardware"
subMenu = std_separator
subMenu = std_separator
subMenu = std_separator
subMenu = std_separator
subMenu = parkingLot, "Experimental/Broken"
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 = 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_controlDialog, "fan_control"
subMenu = fuel_pump_controlDialog, "fuel_pump_control"
subMenu = main_relayDialog, "main_relay"
subMenu = engine_stateDialog, "engine_state"
subMenu = tps_accel_stateDialog, "tps_accel_state"
subMenu = trigger_centralDialog, "trigger_central"
subMenu = trigger_stateDialog, "trigger_state"
subMenu = trigger_state_primaryDialog, "trigger_state_primary"
subMenu = wall_fuel_stateDialog, "wall_fuel_state"
subMenu = idle_stateDialog, "idle_state"
subMenu = electronic_throttleDialog, "electronic_throttle"
subMenu = wideband_stateDialog, "wideband_state"
subMenu = dc_motorsDialog, "dc_motors"
subMenu = sent_stateDialog, "sent_state"
[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_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_calibrate_tps_1_closed = "Z\x00\x14\x00\x02"
cmd_calibrate_tps_1_wot = "Z\x00\x14\x00\x03"
cmd_calibrate_tps_2_closed = "Z\x00\x14\x00\x04"
cmd_calibrate_tps_2_wot = "Z\x00\x14\x00\x05"
cmd_calibrate_pedal_up = "Z\x00\x14\x00\x06"
cmd_calibrate_pedal_down = "Z\x00\x14\x00\x07"
cmd_tle8888_init = "Z\x00\x14\x00\x08"
cmd_write_config = "Z\x00\x14\x00\x0a"
cmd_etb_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_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_microRusEFI_Miata_NA6_MAP = "Z\x00\x1e\x00\x42"
cmd_set_engine_type_microRusEFI_Miata_94_MAP = "Z\x00\x1e\x00\x14"
cmd_set_engine_type_MRE_SUBARU_EJ18 = "Z\x00\x1e\x00\x25"
cmd_set_engine_type_MRE_M111 = "Z\x00\x1e\x00\x44"
cmd_set_engine_type_hellen_NA6 = "Z\x00\x1e\x00\x22"
cmd_set_engine_type_hellen_NA94 = "Z\x00\x1e\x00\x50"
cmd_set_engine_type_hellen_NB1_36 = "Z\x00\x1e\x00\x5e"
cmd_set_engine_type_hellen_NB2_36 = "Z\x00\x1e\x00\x56"
cmd_set_engine_type_hellen_nissan_121_4 = "Z\x00\x1e\x00\x54"
cmd_set_engine_type_hellen_nissan_121_6 = "Z\x00\x1e\x00\x48"
cmd_set_engine_type_hellen_nissan_121_8 = "Z\x00\x1e\x00\x55"
cmd_set_engine_type_hellen_121_vag_4 = "Z\x00\x1e\x00\x47"
cmd_set_engine_type_hellen_121_vag_5 = "Z\x00\x1e\x00\x4d"
cmd_set_engine_type_hellen_121_vag_v6 = "Z\x00\x1e\x00\x4e"
cmd_set_engine_type_hellen_121_vag_vr6 = "Z\x00\x1e\x00\x4f"
cmd_set_engine_type_hellen_121_vag_8 = "Z\x00\x1e\x00\x51"
cmd_set_engine_type_hellen_128_merc_4 = "Z\x00\x1e\x00\x24"
cmd_set_engine_type_hellen_128_merc_6 = "Z\x00\x1e\x00\x58"
cmd_set_engine_type_hellen_128_merc_8 = "Z\x00\x1e\x00\x59"
cmd_set_engine_type_hellen_couple_bk1 = "Z\x00\x1e\x00\x52"
cmd_set_engine_type_hellen_couple_bk2 = "Z\x00\x1e\x00\x5f"
; MIATA_NA6_MAP = 41
cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "Z\x00\x1e\x00\x29"
; MAZDA_MIATA_2003 = 47
cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f"
cmd_set_engine_type_ALPHAX_8CHAN_SBC = "Z\x00\x1e\x00\x61"
; 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
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 = dwellAngle
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 = dwellVoltageCorrection
graphLine = luaTimingAdd
graphLine = luaTimingMult
dialog = knock_controllerDialog, "knock_controller"
liveGraph = knock_controller_1_Graph, "Graph", South
graphLine = m_knockRetard
graphLine = m_knockThreshold
graphLine = m_knockCount
graphLine = m_maximumRetard
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 = {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"
dialog = boost_controlDialog, "boost_control"
panel = boost_controlIndicatorPanel
liveGraph = boost_control_1_Graph, "Graph", South
graphLine = luaTargetAdd
graphLine = boostOutput
graphLine = luaTargetMult
graphLine = openLoopPart
liveGraph = boost_control_2_Graph, "Graph", South
graphLine = luaOpenLoopAdd
graphLine = boostControllerClosedLoopPart
graphLine = boostControlTarget
indicatorPanel = ac_controlIndicatorPanel, 2
indicator = {acButtonState}, "acButtonState No", "acButtonState Yes"
indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes"
indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes"
indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes"
indicator = {noClt}, "noClt No", "noClt Yes"
indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes"
indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes"
indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes"
indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes"
dialog = ac_controlDialog, "ac_control"
panel = ac_controlIndicatorPanel
liveGraph = ac_control_1_Graph, "Graph", South
graphLine = latest_usage_ac_control
graphLine = acSwitchLastChangeTimeMs
indicatorPanel = fan_controlIndicatorPanel, 2
indicator = {cranking}, "cranking No", "cranking Yes"
indicator = {notRunning}, "notRunning No", "notRunning Yes"
indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes"
indicator = {brokenClt}, "brokenClt No", "brokenClt Yes"
indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes"
indicator = {hot}, "hot No", "hot Yes"
indicator = {cold}, "cold No", "cold Yes"
dialog = fan_controlDialog, "fan_control"
panel = fan_controlIndicatorPanel
indicatorPanel = fuel_pump_controlIndicatorPanel, 2
indicator = {isPrime}, "isPrime No", "isPrime Yes"
indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes"
indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes"
indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes"
dialog = fuel_pump_controlDialog, "fuel_pump_control"
panel = fuel_pump_controlIndicatorPanel
indicatorPanel = main_relayIndicatorPanel, 2
indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes"
indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes"
indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes"
indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes"
dialog = main_relayDialog, "main_relay"
panel = main_relayIndicatorPanel
indicatorPanel = engine_stateIndicatorPanel, 2
indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes"
indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes"
indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes"
indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes"
indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes"
indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes"
indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes"
indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes"
indicator = {startStopState}, "startStopState No", "startStopState Yes"
dialog = engine_stateDialog, "engine_state"
panel = engine_stateIndicatorPanel
liveGraph = engine_state_1_Graph, "Graph", South
graphLine = lua_fuelAdd
graphLine = lua_fuelMult
graphLine = sd_tCharge
graphLine = sd_tChargeK
liveGraph = engine_state_2_Graph, "Graph", South
graphLine = crankingFuel_coolantTemperatureCoefficient
graphLine = crankingFuel_tpsCoefficient
graphLine = crankingFuel_durationCoefficient
graphLine = crankingFuel_fuel
liveGraph = engine_state_3_Graph, "Graph", South
graphLine = baroCorrection
graphLine = hellenBoardId
graphLine = startStopStateToggleCounter
graphLine = egtValue1
liveGraph = engine_state_4_Graph, "Graph", South
graphLine = egtValue2
graphLine = desiredRpmLimit
graphLine = fuelInjectionCounter
graphLine = sparkCounter
liveGraph = engine_state_5_Graph, "Graph", South
graphLine = fuelingLoad
graphLine = ignitionLoad
graphLine = veTableYAxis
indicatorPanel = tps_accel_stateIndicatorPanel, 2
indicator = {isAboveAccelThreshold}, "isAboveAccelThreshold No", "isAboveAccelThreshold Yes"
indicator = {isBelowDecelThreshold}, "isBelowDecelThreshold No", "isBelowDecelThreshold Yes"
indicator = {isTimeToResetAccumulator}, "isTimeToResetAccumulator No", "isTimeToResetAccumulator Yes"
indicator = {isFractionalEnrichment}, "isFractionalEnrichment No", "isFractionalEnrichment Yes"
indicator = {belowEpsilon}, "belowEpsilon No", "belowEpsilon Yes"
indicator = {tooShort}, "tooShort No", "tooShort Yes"
dialog = tps_accel_stateDialog, "tps_accel_state"
panel = tps_accel_stateIndicatorPanel
liveGraph = tps_accel_state_1_Graph, "Graph", South
graphLine = tpsFrom
graphLine = tpsTo
graphLine = deltaTps
graphLine = extraFuel
liveGraph = tps_accel_state_2_Graph, "Graph", South
graphLine = valueFromTable
graphLine = fractionalInjFuel
graphLine = accumulatedValue
graphLine = maxExtraPerCycle
liveGraph = tps_accel_state_3_Graph, "Graph", South
graphLine = maxExtraPerPeriod
graphLine = maxInjectedPerPeriod
graphLine = cycleCnt
dialog = trigger_centralDialog, "trigger_central"
liveGraph = trigger_central_1_Graph, "Graph", South
graphLine = hwEventCounters1
graphLine = hwEventCounters2
graphLine = hwEventCounters3
graphLine = hwEventCounters4
liveGraph = trigger_central_2_Graph, "Graph", South
graphLine = hwEventCounters5
graphLine = hwEventCounters6
graphLine = vvtCamCounter
graphLine = mapVvt_MAP_AT_SPECIAL_POINT
liveGraph = trigger_central_3_Graph, "Graph", South
graphLine = mapVvt_MAP_AT_DIFF
graphLine = mapVvt_MAP_AT_CYCLE_COUNT
graphLine = mapVvt_map_peak
graphLine = currentEngineDecodedPhase
liveGraph = trigger_central_4_Graph, "Graph", South
graphLine = triggerToothAngleError
graphLine = triggerIgnoredToothCount
dialog = trigger_stateDialog, "trigger_state"
liveGraph = trigger_state_1_Graph, "Graph", South
graphLine = crankSynchronizationCounter
graphLine = vvtSyncGapRatio
graphLine = vvtToothDurations0
graphLine = vvtCurrentPosition
liveGraph = trigger_state_2_Graph, "Graph", South
graphLine = triggerSyncGapRatio
graphLine = triggerStateIndex
graphLine = vvtCounter
graphLine = camResyncCounter
liveGraph = trigger_state_3_Graph, "Graph", South
graphLine = vvtStateIndex
indicatorPanel = trigger_state_primaryIndicatorPanel, 2
indicator = {m_hasSynchronizedPhase}, "m_hasSynchronizedPhase No", "m_hasSynchronizedPhase Yes"
dialog = trigger_state_primaryDialog, "trigger_state_primary"
panel = trigger_state_primaryIndicatorPanel
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 = {isVerboseIAC}, "isVerboseIAC No", "isVerboseIAC Yes"
indicator = {isIdleCoasting}, "isIdleCoasting No", "isIdleCoasting Yes"
dialog = idle_stateDialog, "idle_state"
panel = idle_stateIndicatorPanel
liveGraph = idle_state_1_Graph, "Graph", South
graphLine = idleState
graphLine = currentIdlePosition
graphLine = baseIdlePosition
graphLine = iacByTpsTaper
liveGraph = idle_state_2_Graph, "Graph", South
graphLine = throttlePedalUpState
graphLine = targetRpmByClt
graphLine = targetRpmAcBump
graphLine = iacByRpmTaper
liveGraph = idle_state_3_Graph, "Graph", South
graphLine = luaAdd
indicatorPanel = electronic_throttleIndicatorPanel, 2
indicator = {etbRevLimitActive}, "etbRevLimitActive No", "etbRevLimitActive Yes"
indicator = {jamDetected}, "jamDetected No", "jamDetected Yes"
dialog = electronic_throttleDialog, "electronic_throttle"
panel = electronic_throttleIndicatorPanel
liveGraph = electronic_throttle_1_Graph, "Graph", South
graphLine = idlePosition
graphLine = trim
graphLine = luaAdjustment
graphLine = m_wastegatePosition
liveGraph = electronic_throttle_2_Graph, "Graph", South
graphLine = etbFeedForward
graphLine = etbIntegralError
graphLine = etbCurrentTarget
graphLine = etbCurrentAdjustedTarget
liveGraph = electronic_throttle_3_Graph, "Graph", South
graphLine = etbDutyRateOfChange
graphLine = etbDutyAverage
graphLine = etbTpsErrorCounter
graphLine = etbPpsErrorCounter
liveGraph = electronic_throttle_4_Graph, "Graph", South
graphLine = etbErrorCode
graphLine = jamTimer
dialog = wideband_stateDialog, "wideband_state"
liveGraph = wideband_state_1_Graph, "Graph", South
graphLine = faultCode
graphLine = heaterDuty
graphLine = pumpDuty
graphLine = tempC
liveGraph = wideband_state_2_Graph, "Graph", South
graphLine = nernstVoltage
graphLine = esr
indicatorPanel = dc_motorsIndicatorPanel, 2
indicator = {isEnabled0}, "isEnabled0 No", "isEnabled0 Yes"
dialog = dc_motorsDialog, "dc_motors"
panel = dc_motorsIndicatorPanel
liveGraph = dc_motors_1_Graph, "Graph", South
graphLine = dcOutput0
graphLine = isEnabled0_int
dialog = sent_stateDialog, "sent_state"
liveGraph = sent_state_1_Graph, "Graph", South
graphLine = value0
graphLine = value1
graphLine = errorRate
dialog = scriptTable1TblSettings, "", yAxis
field = "Name", scriptTableName1
panel = scriptTable1Tbl
dialog = scriptTable2TblSettings, "", yAxis
field = "Name", scriptTableName2
panel = scriptTable2Tbl
dialog = scriptTable3TblSettings, "", yAxis
field = "Name", scriptTableName3
panel = scriptTable3Tbl
dialog = scriptTable4TblSettings, "", yAxis
field = "Name", scriptTableName4
panel = scriptTable4Tbl
dialog = scriptCurve1Settings, "", yAxis
field = "Name", scriptCurveName1
panel = scriptCurve1
dialog = scriptCurve2Settings, "", yAxis
field = "Name", scriptCurveName2
panel = scriptCurve2
dialog = scriptCurve3Settings, "", yAxis
field = "Name", scriptCurveName3
panel = scriptCurve3
dialog = scriptCurve4Settings, "", yAxis
field = "Name", scriptCurveName4
panel = scriptCurve4
dialog = scriptCurve5Settings, "", yAxis
field = "Name", scriptCurveName5
panel = scriptCurve5
dialog = scriptCurve6Settings, "", yAxis
field = "Name", scriptCurveName6
panel = scriptCurve6
dialog = tChargeRpmTpsSettings, "RPM+TPS mode"
field = "We use these coefficients to approximate air/fuel charge"
field = "temperature based on CLT and IAT, depending on RPM and TPM"
field = "Low RPM/Low TPS", tChargeMinRpmMinTps
field = "Low RPM/High TPS", tChargeMinRpmMaxTps
field = "High RPM/Low TPS", tChargeMaxRpmMinTps
field = "High RPM/High TPS", tChargeMaxRpmMaxTps
dialog = tChargeGeneralSettings, ""
field = "Mode", tChargeMode
field = "#These two parameters limit the estimate's rate of change"
field = "Increase rate limit", tChargeAirIncrLimit
field = "Decrease rate limit", tChargeAirDecrLimit
field = ""
dialog = tChargeAirInterpSettings, "Airflow interpolation mode"
field = "Low flow coefficient", tChargeAirCoefMin
field = "High flow coefficient", tChargeAirCoefMax
field = "Max air flow", tChargeAirFlowMax
dialog = tChargeSettings, "Charge temperature estimation"
panel = tChargeGeneralSettings
panel = tChargeRpmTpsSettings, { tChargeMode == 0}
panel = tChargeAirInterpSettings, { tChargeMode == 1}
panel = tchargeCurve, { tChargeMode == 2 }
dialog = baseInjection, "Injection"
field = "Enabled", isInjectionEnabled
field = "Mode", injectionMode, {isInjectionEnabled == 1}
field = "#Batch injection with individual wiring"
field = "Individually wired Batch Fuel", twoWireBatchInjection, {isInjectionEnabled == 1 && injectionMode == 2 }
field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled }
field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled }
field = "Injection phase control mode", injectionTimingMode, { isInjectionEnabled }
dialog = ignitionOutputs, "Ignition Outputs"
field = "Ignition 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 Pin 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 Pin 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 Pin 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)))}
field = "Ignition Pin 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)))}
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 29) || (firingOrder == 30)))}
field = "Ignition Pin 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 Pin 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)))}
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15) || (firingOrder == 22)))}
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))}
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))}
field = "Ignition Pin 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 == 1}
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 == 1}
field = "Fixed Timing", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1}
dialog = ignitionSettings, "", xAxis
panel = ignitionBasic
panel = ignitionOutputs, { uiMode == 0 || uiMode == 1 }
dialog = baseEngineConfig, "Engine Configuration"
; field = "Engine preset", engineType
field = "Number of cylinders", cylindersCount
field = "Displacement", displacement
field = "Firing order", firingOrder
field = "Vehicle weight", vehicleWeight
dialog = engineMetadata, "Engine Metadata"
field = "#These metadata are used by rusEFI Online"
field = "Engine Make", engineMake
field = "Manufacturer Engine Code", engineCode
field = "Vehicle Name", vehicleName
field = "Compression Ratio", compressionRatio
field = "Forced Induction?", isForcedInduction
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 == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) }
field = ""
field = "!Reminder that 4-stroke cycle is 720 degrees"
field = "!For well-known trigger types use '0' trigger angle offset"
field = "Trigger Angle Advance", globalTriggerAngleOffset
field = ""
field = ""
field = "#Cam is primary if you have cam sensor as part of trigger shape"
; cam if
; two-stroke, or
; not crank trigger and ((vague trigger and cam choice) or not vague trigger)
field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) ) ) }
field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) ) )) }
field = "Invert Primary", 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 == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }
field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) }
dialog = trigger_cams, "Cam Inputs"
field = "!https://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 = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3}
field = ""
field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) }
field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) }
field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) }
field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) }
field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 }
field = ""
field = "#Set offset so VVT indicates 0 degrees in default position"
field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 }
field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 }
field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 }
field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 }
field = ""
field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 }
dialog = triggerConfiguration_gap, "Trigger Gap Override"
field = "!This is a pretty advanced feature for when you are debugging trigger synchronization"
field = "Override well known trigger gaps", overrideTriggerGaps
field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 }
field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 }
field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 }
field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 }
field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 }
field = "#Cam is primary if you have cam sensor as part of trigger shape"
; cam if
; two-stroke, or
; not crank trigger and ((vague trigger and cam choice) or not vague trigger)
field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) ) ) }
field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 || trigger_type == 76) ) )) }
field = "Invert Primary", 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 == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }
field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }
field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) }
field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 }
field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 }
field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 }
field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 }
dialog = 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 = "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}
field = ""
field = "injection Output(s) Mode", injectionPinMode, {isInjectionEnabled == 1}
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
dialog = testInjectors, "Injector Test"
commandButton = "Injector #1", cmd_test_inj1
commandButton = "Injector #2", cmd_test_inj2, { cylindersCount >= 2 }
commandButton = "Injector #3", cmd_test_inj3, { cylindersCount >= 3 }
commandButton = "Injector #4", cmd_test_inj4, { cylindersCount >= 4 }
commandButton = "Injector #5", cmd_test_inj5, { cylindersCount >= 5 }
commandButton = "Injector #6", cmd_test_inj6, { cylindersCount >= 6 }
commandButton = "Injector #7", cmd_test_inj7, { cylindersCount >= 7 }
commandButton = "Injector #8", cmd_test_inj8, { cylindersCount >= 8 }
commandButton = "Injector #9", cmd_test_inj9, { cylindersCount >= 9 }
commandButton = "Injector #10", cmd_test_inj10, { cylindersCount >= 10 }
commandButton = "Injector #11", cmd_test_inj11, { cylindersCount >= 11 }
commandButton = "Injector #12", cmd_test_inj12, { cylindersCount >= 12 }
dialog = testSolenoids, "TCU Solenoid Test"
commandButton = "Solenoid #1", cmd_test_sol1
commandButton = "Solenoid #2", cmd_test_sol2
commandButton = "Solenoid #3", cmd_test_sol3
commandButton = "Solenoid #4", cmd_test_sol4
commandButton = "Solenoid #5", cmd_test_sol5
commandButton = "Solenoid #6", cmd_test_sol6
dialog = testOther
field = "Count", benchTestCount
field = "On Time", benchTestOnTime
field = "Off Time", benchTestOffTime
panel = testSolenoids
dialog = injectionSettingsEast, "", yAxis
panel = testInjectors
field = ""
dialog = injectionSettingsWest, "", yAxis
panel = injectorOutputSettings
field = ""
dialog = injectionSettings, "", xAxis
panel = injectionSettingsWest
panel = injectionSettingsEast
dialog = injectorConfig, "", yAxis
topicHelp = "fuelHelp"
panel = baseInjection
panel = injChars
panel = fuelParams
panel = injectorsDeadTime
dialog = ignitionCylExtra, "Cylinder offsets"
field = "Offset angle for each cylinder if you have an odd fire"
field = "engine, like a v-twin or some V6/V10 engines"
field = "#Positive numbers retard, negative numbers advance"
field = "Offset cyl 1", timing_offset_cylinder1
field = "Offset cyl 2", timing_offset_cylinder2, {cylindersCount > 1}
field = "Offset cyl 3", timing_offset_cylinder3, {cylindersCount > 2}
field = "Offset cyl 4", timing_offset_cylinder4, {cylindersCount > 3}
field = "Offset cyl 5", timing_offset_cylinder5, {cylindersCount > 4}
field = "Offset cyl 6", timing_offset_cylinder6, {cylindersCount > 5}
field = "Offset cyl 7", timing_offset_cylinder7, {cylindersCount > 6}
field = "Offset cyl 8", timing_offset_cylinder8, {cylindersCount > 7}
field = "Offset cyl 9", timing_offset_cylinder9, {cylindersCount > 8}
field = "Offset cyl 10", timing_offset_cylinder10, {cylindersCount > 9}
field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10}
field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11}
dialog = multisparkDwellParams, "Delay & Dwell"
field = "Spark duration", multisparkSparkDuration, {multisparkEnable}
field = "Subsequent spark dwell", multisparkDwell, {multisparkEnable}
dialog = multisparkMain, "Configuration"
field = "Maximum engine speed", multisparkMaxRpm, {multisparkEnable}
field = "Fire sparks for this angle duration" multisparkMaxSparkingAngle, {multisparkEnable}
field = "Maximum extra spark count" multisparkMaxExtraSparkCount, {multisparkEnable}
dialog = multisparkSettings, "Multispark"
field = "#WARNING! These settings have the potential to overheat ignition components"
field = "#and cause other nasty misbehavior. Use with care, at your own risk!"
field = "#Not recommended for use on distributor or wasted spark ignition systems."
field = "Enable multiple sparks", multisparkEnable
panel = multisparkMain
panel = multisparkDwellParams
dialog = ignAdder1Cfg, "Ignition adder 1 config"
field = "#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
panel = ignAdder1Bias
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
panel = ignAdder2Bias
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
panel = ignAdder3Bias
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
panel = ignAdder4Bias
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."
field = "#The X axis of the bias table is controlled by the selected blend"
field = "#parameter below."
field = "Blend parameter", veBlends1_blendParameter
panel = veBlend2Bias
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."
field = "#The X axis of the bias table is controlled by the selected blend"
field = "#parameter below."
field = "Blend parameter", veBlends2_blendParameter
panel = veBlend2Bias
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."
field = "#The X axis of the bias table is controlled by the selected blend"
field = "#parameter below."
field = "Blend parameter", veBlends3_blendParameter
panel = veBlend3Bias
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."
field = "#The X axis of the bias table is controlled by the selected blend"
field = "#parameter below."
field = "Blend parameter", veBlends4_blendParameter
panel = veBlend4Bias
dialog = boostOpenBlend1Cfg, "Boost open loop blend 1 config"
field = "#The bias table controls how much of the blend table"
field = "#is mixed in to the open loop boost table. For example, a value of"
field = "#+10 in the table, with 50 as the current bias will result"
field = "#in +5.0 added to the boost open loop %."
field = "#The X axis of the bias table is controlled by the selected blend"
field = "#parameter below."
field = "Blend parameter", boostOpenLoopBlends1_blendParameter
panel = boostOpenLoopBlend1Bias
dialog = boostOpenBlend2Cfg, "Boost open loop blend 2 config"
field = "#The bias table controls how much of the blend table"
field = "#is mixed in to the open loop boost table. For example, a value of"
field = "#+10 in the table, with 50 as the current bias will result"
field = "#in +5.0 added to the boost open loop %."
field = "#The X axis of the bias table is controlled by the selected blend"
field = "#parameter below."
field = "Blend parameter", boostOpenLoopBlends2_blendParameter
panel = boostOpenLoopBlend2Bias
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
panel = boostClosedLoopBlend1Bias
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
panel = boostClosedLoopBlend2Bias
dialog = dwellSettings, "", yAxis
panel = dwellCorrection
panel = dwellVoltageCorrection
; Sensors->AUX1 Thermistor Sensor Setting
dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings"
field = "Input channel", auxTempSensor1_adcChannel
field = "Bias resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != 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}
; Sensors->AUX2 Thermistor Sensor Setting
dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings"
field = "Input channel", auxTempSensor2_adcChannel
field = "Bias 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 = tpsNum1, "Throttle Body #1"
field = "Primary sensor", tps1_1AdcChannel
field = "Primary min", tpsMin, {tps1_1AdcChannel != 0}
field = "Primary max", tpsMax, {tps1_1AdcChannel != 0}
field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0}
field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0}
field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0}
commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0}
dialog = tpsNum2, "Throttle Body #2"
field = "Primary sensor", tps2_1AdcChannel
field = "Primary min", tps2Min, {tps2_1AdcChannel != 0}
field = "Primary max", tps2Max, {tps2_1AdcChannel != 0}
field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0}
field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0}
field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0}
commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0}
dialog = tpsLimits, "TPS Limits"
field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0}
field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0}
dialog = tpsSensorLeft
panel = tpsLimits
panel = tpsNum1
panel = tpsNum2
dialog = pedalSensorLeft, "Accelerator pedal"
field = "Accelerator position sensor", throttlePedalPositionAdcChannel
field = "Up voltage", throttlePedalUpVoltage
commandButton = "Grab Up", cmd_calibrate_pedal_up
field = "Down (WOT) voltage", throttlePedalWOTVoltage
commandButton = "Grab Down", cmd_calibrate_pedal_down
field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel
field = "Up voltage", throttlePedalSecondaryUpVoltage
field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage
dialog = pedalGauges
gauge = pedalPositionGauge
gauge = rawPpsPrimaryGauge
gauge = rawPpsSecondaryGauge
dialog = tpsGauges
gauge = rawTps1PrimaryGauge
gauge = rawTps1SecondaryGauge
gauge = rawTps2PrimaryGauge
gauge = rawTps2SecondaryGauge
dialog = pedalSensor, "Accelerator pedal", border
panel = pedalSensorLeft, West
panel = pedalGauges, East
dialog = tpsSensor, "", border
panel = tpsSensorLeft, West
panel = tpsGauges, East
dialog = wastegatePosConfig, "Wastegate position sensor"
field = "Input", wastegatePositionSensor
field = "Min (fully closed, most boost)", wastegatePositionMin
field = "Max (fully open, least boost)", wastegatePositionMax
dialog = idlePosConfig, "Idle position sensor"
field = "Input", idlePositionSensor
field = "Min (valve closed, low idle)", idlePositionMin
field = "Max (valve open, high idle)", idlePositionMax
dialog = wastegateIdlePosLeft, ""
panel = wastegatePosConfig
panel = idlePosConfig
dialog = wastegateIdlePosGauges, ""
gauge = rawWastegatePositionGauge, West
gauge = wastegatePosGauge, East
gauge = rawIdlePositionSensorGauge
gauge = idlePosSensGauge
dialog = wastegateIdlePos, "", border
panel = wastegateIdlePosLeft, West
panel = wastegateIdlePosGauges, East
dialog = mc33Dialog, "Low-Z injector control PT2001"
field = "SPI Chip Select", mc33816_cs
field = "SPI Device", mc33816spiDevice
field = "MC33816 rstb", mc33816_rstb
field = "MC33816 flag0", mc33816_flag0
field = "Boost voltage", mc33_hvolt
field = "Boost current target", mc33_i_boost
field = "Min boost time", mc33_t_min_boost
field = "Max boost time (timeout)", mc33_t_max_boost
field = "Peak phase current target", mc33_i_peak
field = "Peak phase duration", mc33_t_peak_tot
field = "Peak phase loop off time", mc33_t_peak_off
field = "Peak -> Hold Bypass Time", mc33_t_bypass
field = "Hold current target", mc33_i_hold
field = "Hold phase loop off time", mc33_t_hold_off
field = "Maximum injection duration", mc33_t_hold_tot
; Sensor Inputs
dialog = otherSensorInputs, "Other Sensor Inputs"
field = "Clutch Down", clutchDownPin
field = "Clutch Down inverted", clutchDownPinInverted
field = "Clutch Down mode", clutchDownPinMode
field = "Clutch Up", clutchUpPin
field = "Clutch Up inverted", clutchUpPinInverted
field = "Clutch Up mode", clutchUpPinMode
field = "Throttle Up switch", throttlePedalUpPin
field = "Brake pedal switch", brakePedalPin
field = "Flex fuel sensor", flexSensorPin
field = "Turbo Speed Sensor", turboSpeedSensorInputPin
field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier
dialog = fuelLevelDialog, "Fuel Level Sensor"
field = "Input channel", fuelLevelSensor
panel = fuelLevelCurve
;
; allXXX sections allows a quick overview of used I/O in order to address conflicts mostly, not really to
; configure the features.
;
dialog = allPinsSensors, "Sensors"
field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel
field = "Throttle pedal Position #2", throttlePedalPositionSecondAdcChannel
field = "Primary input channel", triggerInputPins1
field = "Secondary channel", triggerInputPins2
field = "Cam Sync/VVT input", camInputs1
field = "CLT ADC input", clt_adcChannel
field = "IAT ADC input", iat_adcChannel
field = "vBatt ADC input", vbattAdcChannel
field = "TPS1 ADC input", tps1_1AdcChannel
field = "TPS2 ADC input", tps2_1AdcChannel
field = "MAF ADC input", mafAdcChannel
field = "MAF 2 ADC input", maf2AdcChannel
field = "AFR ADC input", afr_hwChannel
field = "AFR 2 ADC input", afr_hwChannel2
field = "Baro ADC input", baroSensor_hwChannel
field = "MAP ADC input", map_sensor_hwChannel
field = "Fuel Level input", fuelLevelSensor
field = "Vehicle Speed input", vehicleSpeedSensorInputPin
field = "Clutch Down input", clutchDownPin
field = "Clutch Up input", clutchUpPin
field = "Brake pedal input", brakePedalPin
field = "A/C Switch", acSwitch
field = "Aux Temperature #1", auxTempSensor1_adcChannel
field = "Aux Temperature #2", auxTempSensor2_adcChannel
field = "Aux Fast Analog", auxFastSensor1_adcChannel
dialog = allTriggerDebug, "Trigger Debug"
field = "trigger 1 debug", triggerInputDebugPins1
field = "trigger 2 debug", triggerInputDebugPins2
field = "cam 1 debug", camInputsDebug1
field = "cam 2 debug", camInputsDebug2
field = "cam 3 debug", camInputsDebug3
field = "cam 4 debug", camInputsDebug4
dialog = allPinsMC33, "MC33816"
field = "Chip Select", mc33816_cs
field = rstb, mc33816_rstb
field = flag0, mc33816_flag0
field = mc33816_driven, mc33816_driven
field = mc33816spiDevice, mc33816spiDevice
field = hpfpValcePin, hpfpValvePin
dialog = allPins1_1
field = "trigger stimulator output #1", triggerSimulatorPins1
field = "trigger stimulator output #2", triggerSimulatorPins2
field = "tle6240_cs", tle6240_cs
field = "tle6240 SPI", tle6240spiDevice
dialog = allPins1_2
field = "Tachometer output", tachOutputPin
field = "O2 heater output", o2heaterPin
field = "Idle Solenoid Primary output", idle_solenoidPin
field = "Idle Solenoid Secondary output",secondSolenoidPin
field = "Idle Stepper Dir", idle_stepperDirectionPin
field = "Idle Stepper Step", idle_stepperStepPin
field = "Idle Stepper Enable", stepperEnablePin
field = "Fuel Pump output", fuelPumpPin
field = "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 = "hip9011CsPin", hip9011CsPin
field = "LIS302DLCsPin", LIS302DLCsPin
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
; Sensors->CLT sensor
dialog = clt_thermistor, "CLT sensor"
field = "Input channel", clt_adcChannel
field = "Bias resistor", clt_bias_resistor, {clt_adcChannel != 0}
settingSelector = "Common CLT Sensors"
settingOption = "GM CLT", clt_tempC_1=0,clt_resistance_1=9240,clt_tempC_2=40,clt_resistance_2=1459,clt_tempC_3=100,clt_resistance_3=177,useLinearCltSensor=0
settingOption = "Miata NA", clt_tempC_1=-20,clt_resistance_1=16150,clt_tempC_2=40,clt_resistance_2=1150,clt_tempC_3=80,clt_resistance_3=330,useLinearCltSensor=0
settingOption = "Miata NB", clt_tempC_1=-10,clt_resistance_1=9000,clt_tempC_2=20,clt_resistance_2=2500,clt_tempC_3=80,clt_resistance_3=320,useLinearCltSensor=0
settingOption = "Bosch Various", clt_tempC_1=0,clt_resistance_1=5896,clt_tempC_2=50,clt_resistance_2=834,clt_tempC_3=100,clt_resistance_3=187,useLinearCltSensor=0
field = "#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
; Sensors->IAT sensor
dialog = iat_thermistor, "IAT sensor"
field = "Input channel", iat_adcChannel
field = "Bias 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 = "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
; Sensors->Oil pressure sensor
dialog = oilp_settings, "Oil Pressure Sensor"
field = "Oil Pressure ADC input", oilPressure_hwChannel
field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != 0}
field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != 0}
field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != 0}
field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != 0}
dialog = oilPressureGauges
gauge = OilPressGauge
gauge = rawOilPressureGauge
dialog = oilPressureSensor, "", border
panel = oilp_settings, West
panel = oilPressureGauges, East
dialog = fuelp_settings, "Fuel Pressure Sensor"
field = "Fuel low pressure ADC input", lowPressureFuel_hwChannel
field = "low voltage", lowPressureFuel_v1, {lowPressureFuel_hwChannel != 0}
field = "low pressure", lowPressureFuel_value1, {lowPressureFuel_hwChannel != 0}
field = "high voltage", lowPressureFuel_v2, {lowPressureFuel_hwChannel != 0}
field = "high pressure", lowPressureFuel_value2, {lowPressureFuel_hwChannel != 0}
field = "sensor type", fuelPressureSensorMode, {lowPressureFuel_hwChannel != 0}
field = "Fuel high pressure ADC input", highPressureFuel_hwChannel
field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0}
field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0}
field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0}
field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0}
dialog = fuelPressureGauges
gauge = lowFuelPressureGauge
gauge = rawLowFuelPressureGauge
gauge = highFuelPressureGauge
gauge = rawHighFuelPressureGauge
dialog = fuelPressureSensor, "", border
panel = fuelp_settings, West
panel = fuelPressureGauges, East
dialog = auxLinearSensor1, "Aux Linear Sensor #1"
field = "ADC input", auxLinear1_hwChannel
field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0}
field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0}
field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0}
field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0}
dialog = auxLinearSensor2, "Aux Linear Sensor #2"
field = "ADC input", auxLinear2_hwChannel
field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0}
field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0}
field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0}
field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0}
dialog = auxLinearSensors
panel = auxLinearSensor1
panel = auxLinearSensor2
field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1
field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2
; Sensors->MAP sensor
dialog = mapSensorAnalog, "MAP sensor", yAxis
field = "MAP ADC input", map_sensor_hwChannel
field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 }
field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 }
field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 }
field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 }
field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 }
dialog = mapCommon, "MAP common settings"
field = "Low value threshold", mapErrorDetectionTooLow
field = "High value threshold", mapErrorDetectionTooHigh
field = ""
field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder
field = "Cylinder count to sample MAP", mapMinBufferLength
dialog = mapSettings, "", yAxis
panel = mapCommon
panel = mapSensorAnalog
dialog = baroSettings, "Baro sensor"
field = "Baro ADC input", baroSensor_hwChannel
field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0}
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, "EGO sensor"
field = "Type", afr_type
; todo: only use these values for custom!
field = "low voltage", afr_v1
field = "low value", afr_value1
field = "high voltage", afr_v2
field = "high value", afr_value2
field = "Correction", egoValueShift
dialog = egoSettings_IO1, "EGO Sensor 1 I/O"
field = "Input channel", afr_hwChannel,{afr_hwChannel != 0 || enableAemXSeries == 0 }
field = "Heater output", o2heaterPin, { o2heaterPin != 0 || enableAemXSeries == 0 }
dialog = egoSettings_IO2, "EGO Sensor 2 I/O"
field = "Input channel", afr_hwChannel2
dialog = egoSettings, "", yAxis
field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled }
field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin }
panel = egoSettings_IO1
panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin}
panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin}
; Engine->EGT inputs
dialog = egtInputs, "EGT inputs"
field = "SPI", max31855spiDevice
field = "CS #1", max31855_cs1
field = "CS #2", max31855_cs2
field = "CS #3", max31855_cs3
field = "CS #4", max31855_cs4
field = "CS #5", max31855_cs5
field = "CS #6", max31855_cs6
field = "CS #7", max31855_cs7
field = "CS #8", max31855_cs8
; Engine->idle Settings
dialog = idleSolenoid, "Solenoid"
field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle }
field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) }
field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle
field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle
dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1"
field = "No1 Direction #1", etbIo1_directionPin1
field = "No1 Direction #2", etbIo1_directionPin2
field = "No1 Control", etbIo1_controlPin
field = "No1 Disable", etbIo1_disablePin
dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2"
field = "No2 Direction #1", etbIo2_directionPin1
field = "No2 Direction #2", etbIo2_directionPin2
field = "No2 Control", etbIo2_controlPin
field = "No2 Disable", etbIo2_disablePin
dialog = etbHbridgeHardware, "ETB H-Bridge Hardware"
field = "Two-wire mode", etb_use_two_wires
panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 }
panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 }
dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1"
field = "No1 Direction #1", stepperDcIo1_directionPin1
field = "No1 Direction #2", stepperDcIo1_directionPin2
field = "No1 Disable", stepperDcIo1_disablePin
dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2"
field = "No2 Direction #1", stepperDcIo2_directionPin1
field = "No2 Direction #2", stepperDcIo2_directionPin2
field = "No2 Disable", stepperDcIo2_disablePin
dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware"
topicHelp = "stepperHbridgeHardwareHelp"
field = "Inverted driver pins", stepperDcInvertedPins
panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 }
panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 }
dialog = idleStepperHw, "Stepper Controller Hardware"
topicHelp = "idleStepperHwHelp"
field = "Idle Stepper Step Pin", idle_stepperStepPin
field = "Idle Stepper Dir Pin", idle_stepperDirectionPin
field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode
field = "Idle Stepper Enable Pin", stepperEnablePin
field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode
dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware"
topicHelp = "stepperDirectDriveHardwareHelp"
field = "Stepper A+", stepper_raw_output1
field = "Stepper A-", stepper_raw_output2
field = "Stepper B+", stepper_raw_output3
field = "Stepper B-", stepper_raw_output4
dialog = idleStepperHwType, ""
panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper }
panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper }
panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper }
dialog = idleStepperGeneral, ""
field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle
field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper }
field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle
field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle
field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle
field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle
dialog = idleStepperMicro, "Micro-Stepping"
field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper
field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 }
field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 }
dialog = idleStepper, "Stepper"
panel = idleStepperGeneral
panel = idleStepperHwType
panel = idleStepperMicro
dialog = idleHwType, "Idle Valve Hardware", yAxis
panel = idleSolenoid
panel = idleStepper
dialog = idlehw, "", yAxis
field = "!ECU reboot needed to apply these settings"
field = "Use Stepper", useStepperIdle
field = "Double Solenoid Mode", isDoubleSolenoidIdle
field = "Electronic throttle idle range", etbIdleThrottleRange
panel = idleHwType
dialog = idlePidSettings, "Closed Loop Idle"
field = "P-factor", idleRpmPid_pFactor
field = "I-factor", idleRpmPid_iFactor
field = "derivativeFilterLoss", idle_derivativeFilterLoss
field = "antiwindupFreq", idle_antiwindupFreq
field = "D-factor", idleRpmPid_dFactor
field = "Min", idleRpmPid_minValue
field = "Max", idleRpmPid_maxValue
field = "iTerm Min", idlerpmpid_iTermMin
field = "iTerm Max", idlerpmpid_iTermMax
field = "PID Extra for low RPM", pidExtraForLowRpm
field = idleIncrementalPidCic, idleIncrementalPidCic
field = "use Cic Pid", useCicPidForIdle
field = "Use IAC PID Multiplier Table", useIacPidMultTable
dialog = idleOpenLoop, "Open Loop Idle"
slider = "Open loop base position", manIdlePosition, horizontal
field = "A/C adder", acIdleExtraOffset
field = "A/C target adder", acIdleRpmBump
field = "Fan #1 adder", fan1ExtraIdle
field = "Fan #2 adder", fan2ExtraIdle
field = "Extra idle air if throttle pressed", iacByTpsTaper
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 = "Detailed status in console", isVerboseIAC
dialog = idleSettings, "", yAxis
field = "Idle control mode", idleMode
field = "! Solenoid idle control is disabled at zero RPM"
; gating applies both to open loop and closed loop!
panel = idleGating
; closed loop mode is an addition on top of open loop, so idleOpenLoop stays open even when closed loop is selected
panel = idleOpenLoop
panel = idlePidSettings, { idleMode == 0 }
panel = idleExtra
dialog = idleTimingPidCorrDialog, "", yAxis
field = ""
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
field = ""
field = "#Gain is in degrees advance per rpm away from target"
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1}
field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1}
field = ""
field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1}
field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1}
field = ""
field = "#Use debug mode 'Timing' to view idle timing adjustment"
; Engine->Fan Settings
dialog = fan1Settings, "Fan 1"
field = "Output", fanPin, 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 = "Idle adder", fan1ExtraIdle
dialog = fan2Settings, "Fan 2"
field = "Output", fan2Pin
field = "Output mode", fan2PinMode
field = "On temperature", fan2OnTemperature
field = "Off temperature", fan2OffTemperature
field = "Enable with AC", enableFan2WithAc
field = "Disable when engine stopped", disableFan2WhenStopped
field = "Idle adder", fan2ExtraIdle
dialog = fanTest, "", xAxis
commandButton = "Test Fan 1", cmd_test_fan_1
commandButton = "Test Fan 2", cmd_test_fan_2
indicatorPanel = fanIndicators, 2
indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black
indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black
dialog = acSettingsWest, "A/C Settings"
field = "A/C switch", acSwitch
field = "A/C switch mode", acSwitchMode
field = "A/C Relay", acRelayPin
field = "A/C Relay Mode", acRelayPinMode
field = "A/C compressor delay", acDelay
field = "Max RPM", maxAcRpm
field = "Max CLT", maxAcClt
field = "Max TPS", maxAcTps
field = "A/C Idle adder", acIdleExtraOffset
field = "A/C RPM adder", acIdleRpmBump
dialog = acSettings, "", border
panel = acSettingsWest, West
panel = ac_controlIndicatorPanel, East
dialog = fanSetting, "Fan Settings"
panel = fan1Settings
panel = fan2Settings
panel = fanTest
panel = fanIndicators
dialog = fuelPumpDialog, "Fuel Pump"
field = "Output", fuelPumpPin
field = "Output mode", fuelPumpPinMode
field = "Prime duration", startUpFuelPumpDuration
; Controller->Actuator Outputs
dialog = mainRelayDialog, "Main relay output"
field = "Output", mainRelayPin
field = "Output mode", mainRelayPinMode
dialog = starterRelayDialog, "Starter Disable"
field = "Output", starterRelayDisablePin
field = "Output mode", starterRelayDisablePinMode
dialog = startStopDialog, "Starter Control"
field = "Start/Stop Button input", startStopButtonPin
field = "Start/Stop Button input mode", startStopButtonMode
field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0}
field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0}
; Engine->MIL Settings
dialog = malfunctionDialog, "Check Engine Settings"
field = "Output", malfunctionIndicatorPin
field = "Output mode", malfunctionIndicatorPinMode
field = "Warning Period", warningPeriod
dialog = tachSettings, "Tachometer output"
field = "Output", tachOutputPin
field = "Output mode", tachOutputPinMode
field = "Pulse Mode", tachPulseDurationAsDutyCycle
field = "Pulse duration", tachPulseDuractionMs
field = "Pulse per Rev", tachPulsePerRev
dialog = outputsDialogLeft
panel = mainRelayDialog
panel = fuelPumpDialog
panel = tachSettings
panel = startStopDialog
panel = starterRelayDialog
panel = malfunctionDialog
dialog = outputsDialog, "Outputs", border
panel = outputsDialogLeft, West
panel = fanSetting, Center
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 = spiFunction, "SPI settings"
field = "!ECU reboot needed to apply these settings"
field = "SPI1 enable", is_enabled_spi_1
field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1}
field = "SPI1mosi mode", spi1MosiMode, {is_enabled_spi_1 == 1}
field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1}
field = "SPI1miso mode", spi1MisoMode, {is_enabled_spi_1 == 1}
field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1}
field = "SPI1sck mode", spi1SckMode, {is_enabled_spi_1 == 1}
field = "SPI2 enable", is_enabled_spi_2
field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1}
field = "SPI2mosi mode", spi2MosiMode, {is_enabled_spi_2 == 1}
field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1}
field = "SPI2miso mode", spi2MisoMode, {is_enabled_spi_2 == 1}
field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1}
field = "SPI2sck mode", spi2SckMode, {is_enabled_spi_2 == 1}
field = "SPI3 enable", is_enabled_spi_3
field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1}
field = "SPI3mosi mode", spi3MosiMode, {is_enabled_spi_3 == 1}
field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1}
field = "SPI3miso mode", spi3MisoMode, {is_enabled_spi_3 == 1}
field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1}
field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1}
field = "LIS302DLCsPin", LIS302DLCsPin
dialog = stftPartitioning, "Region Configuration"
field = "Idle region RPM", stft_maxIdleRegionRpm
field = "Overrun region load", stft_maxOverrunLoad
field = "Power region load", stft_minPowerLoad
dialog = stftPartitionSettingsMain, "Main Region", xAxis
field = "Time const", stft_cellCfgs4_timeConstant
field = "Max add", stft_cellCfgs4_maxAdd
field = "Max remove", stft_cellCfgs4_maxRemove
dialog = stftPartitionSettingsIdle, "Idle Region", xAxis
field = "Time const", stft_cellCfgs1_timeConstant
field = "Max add", stft_cellCfgs1_maxAdd
field = "Max remove", stft_cellCfgs1_maxRemove
dialog = stftPartitionSettingsPower, "Power Region", xAxis
field = "Time const", stft_cellCfgs3_timeConstant
field = "Max add", stft_cellCfgs3_maxAdd
field = "Max remove", stft_cellCfgs3_maxRemove
dialog = stftPartitionSettingsOverrun, "Overrun Region", xAxis
field = "Time const", stft_cellCfgs2_timeConstant
field = "Max add", stft_cellCfgs2_maxAdd
field = "Max remove", stft_cellCfgs2_maxRemove
dialog = fuelClosedLoopDialog, "Closed loop fuel correction"
field = "Enabled", fuelClosedLoopCorrectionEnabled
field = "Startup delay" stft_startupDelay, {fuelClosedLoopCorrectionEnabled == 1}
field = "Minimum CLT for correction", stft_minClt, {fuelClosedLoopCorrectionEnabled == 1}
field = "Minimum AFR for correction", stft_minAfr, {fuelClosedLoopCorrectionEnabled == 1}
field = "Maximum AFR for correction", stft_maxAfr, {fuelClosedLoopCorrectionEnabled == 1}
field = "Adjustment deadband", stft_deadband, {fuelClosedLoopCorrectionEnabled == 1}
field = "Ignore error magnitude", stftIgnoreErrorMagnitude, {fuelClosedLoopCorrectionEnabled == 1}
panel = stftPartitioning, {fuelClosedLoopCorrectionEnabled == 1}
panel = stftPartitionSettingsMain, {fuelClosedLoopCorrectionEnabled == 1}
panel = stftPartitionSettingsIdle, {fuelClosedLoopCorrectionEnabled == 1}
panel = stftPartitionSettingsPower, {fuelClosedLoopCorrectionEnabled == 1}
panel = stftPartitionSettingsOverrun, {fuelClosedLoopCorrectionEnabled == 1}
dialog = vvtPidDialog0, "Configuration"
field = "Activation Delay", vvtActivationDelayMs
field = "Do not control below RPM", vvtControlMinRpm
field = "VVT solenoid bank 1 intake", vvtPins1
field = "VVT solenoid bank 1 exhaust", vvtPins2
field = "VVT solenoid bank 2 intake", vvtPins3
field = "VVT solenoid bank 2 exhaust", vvtPins4
field = "PWM frequency", vvtOutputFrequency1, {vvtPins1 != 0 || vvtPins2 != 0}
field = "VVT solenoid intake cams control direction", invertVvtControlIntake, { vvtPins1 != 0 || vvtPins3 != 0 }
field = "VVT solenoid exhaust cams control direction", invertVvtControlExhaust, { vvtPins2 != 0 || vvtPins4 != 0 }
dialog = vvtPidDialog1, "Intake PID"
field = "offset", auxPid1_offset, {vvtPins1 != 0}
field = "P factor", auxPid1_pFactor, {vvtPins1 != 0}
field = "I factor", auxPid1_iFactor, {vvtPins1 != 0}
field = "D factor", auxPid1_dFactor, {vvtPins1 != 0}
field = "Min", auxPid1_minValue, {vvtPins1 != 0}
field = "Max", auxPid1_maxValue, {vvtPins1 != 0}
dialog = vvtPidDialog2, "Exhaust PID"
field = "offset", auxPid2_offset, {vvtPins2 != 0}
field = "P factor", auxPid2_pFactor, {vvtPins2 != 0}
field = "I factor", auxPid2_iFactor, {vvtPins2 != 0}
field = "D factor", auxPid2_dFactor, {vvtPins2 != 0}
field = "Min", auxPid2_minValue, {vvtPins2 != 0}
field = "Max", auxPid2_maxValue, {vvtPins2 != 0}
dialog = vvtPidDialog, "VVT Configuration & PID", border
panel = vvtPidDialog0, West
panel = vvtPidDialog1, Center
panel = vvtPidDialog2, East
; Engine->Battery & Alternator
dialog = batteryDialog, "Battery Settings", yAxis
field = "vBatt ADC input", vbattAdcChannel
field = "Battery Input Divider Coefficient", vbattDividerCoeff
dialog = alternator, "Alternator Settings", yAxis
field = "Enabled", isAlternatorControlEnabled
field = "Target", targetVBatt, {isAlternatorControlEnabled == 1}
field = "Control output", alternatorControlPin, {isAlternatorControlEnabled == 1}
field = "Control output mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1}
field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1}
field = "Off Above TPS", alternatorOffAboveTps, {isAlternatorControlEnabled == 1}
field = "A/C duty adder", acRelayAlternatorDutyAdder, {isAlternatorControlEnabled == 1}
field = "Detailed status in console", isVerboseAlternator, {isAlternatorControlEnabled == 1}
field = "#PID control"
field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1}
field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1}
field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1}
field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1}
field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1}
field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1}
field = "#% duty = Pterm + Iterm + Dterm + offset%"
dialog = 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 = "VSS CAN message type", canVssNbcType, { enableCanVss }
dialog = speedSensorLeft, "", yAxis
panel = speedSensorAnalog, { enableCanVss == 0 }
panel = speedSensorCan
dialog = gearDetection, "Gear Detection"
field = "Wheel revolutions per kilometer", driveWheelRevPerKm
field = "Final drive ratio", finalGearRatio
field = ""
field = "Forward gear count", totalGearsCount
field = ""
field = "1st gear", gearRatio1, { totalGearsCount >= 1 }
field = "2nd gear", gearRatio2, { totalGearsCount >= 2 }
field = "3rd gear", gearRatio3, { totalGearsCount >= 3 }
field = "4th gear", gearRatio4, { totalGearsCount >= 4 }
field = "5th gear", gearRatio5, { totalGearsCount >= 5 }
field = "6th gear", gearRatio6, { totalGearsCount >= 6 }
field = "7th gear", 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 read enabled", canReadEnabled
field = "CAN write enabled", canWriteEnabled
field = "CAN dash type", canNbcType
field = "inertia measurement unit", imuType
field = "Enable rusEFI CAN broadcast", enableVerboseCanTx
field = "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 = tle8888, "TLE8888", yAxis
field = "TLE8888 Chip Select", tle8888_cs
field = "TLE8888 SPI", tle8888spiDevice
field = "Mode", tle8888mode
field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack
field = "useTLE8888 stepper", useTLE8888_stepper
commandButton = "Reinit", cmd_tle8888_init
field = "L9779 SPI", tle8888spiDevice
dialog = connection, "", yAxis
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 = generalSettings, "Fuel"
field = "!https://rusefi.com/s/fuel"
field = "Fuel strategy", fuelAlgorithm
dialog = debugging, "Debug"
field = "!https://rusefi.com/s/debugmode"
field = "Debug mode", debugMode
dialog = limitsSettings, "Limits"
field = "Cut fuel on RPM limit", cutFuelOnHardLimit
field = "Cut spark on RPM limit", cutSparkOnHardLimit
field = "Use CLT-based RPM limit curve", useCltBasedRpmLimit, { cutFuelOnHardLimit || cutSparkOnHardLimit }
field = "RPM hard limit", rpmHardLimit, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit }
field = "RPM limit hysteresis", rpmHardLimitHyst
field = "Boost cut pressure", boostCutPressure
field = "Boost cut pressure hysteresis", boostCutPressureHyst
field = "Minimum oil pressure after start", minOilPressureAfterStart
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 = generalSettings
panel = debugging
dialog = crankingFuel, "Fuel"
field = "Injection mode", crankingInjectionMode
field = "Fuel Source For Cranking", useRunningMathForCranking
field = "Base fuel mass", cranking_baseFuel, {useRunningMathForCranking == 0}
dialog = crankingIAC, "Idle air valve"
field = "Cranking base IAC position", crankingIACposition
field = "After cranking IAC taper duration",afterCrankingIACtaperDuration
field = "Override cranking IAC CLT multiplier", overrideCrankingIacSetting
dialog = crankingIgnition, "Ignition"
field = "Timing Advance mode", useSeparateAdvanceForCranking
field = "Fixed cranking advance", crankingTimingAngle, {useSeparateAdvanceForCranking == 0}
field = "Fixed Cranking Dwell", ignitionDwellForCrankingMs
dialog = postCrankingEnrichment, "After start enrichment"
field = "Post-Cranking factor", postCrankingFactor
field = "Duration", postCrankingDurationSec
dialog = primingFuelPulsePanel, "Priming fuel pulse"
field = "Priming delay", primingDelay
panel = primingPulse
dialog = crankingAdv, "Advanced"
field = "Enable flood clear", isCylinderCleanupEnabled
field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled
field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking
field = "Use Flex Fuel cranking table", flexCranking
; Cranking->Cranking Settings
dialog = crankingDialog, "Cranking Settings"
field = "Cranking RPM limit", cranking_rpm
panel = crankingFuel
panel = crankingIgnition
panel = crankingIAC
panel = crankingAdv
dialog = TpsAccelPanel, "TPS"
field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics"
field = "Length", tpsAccelLookback
field = "Accel Threshold", tpsAccelEnrichmentThreshold
field = "Decel Threshold", tpsDecelEnleanmentThreshold
; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier
field = "#Accelerator Pump model:"
field = "Fraction Period", tpsAccelFractionPeriod
field = "Fraction Divisor", tpsAccelFractionDivisor
dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)"
field = "Wall fueling model type", complexWallModel
field = "evaporation time constant / tau", wwaeTau, { complexWallModel == 0 }
field = "added to wall coef / beta", wwaeBeta, { complexWallModel == 0 }
; Tuning->AccelEnrichment
dialog = AccelEnrich, "Accel/Decel Enrichment"
panel = TpsAccelPanel
panel = WallWettingAccelPanel
field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs
dialog = wwTauCurves, "Wall wetting AE evaporation time"
field = "#Set a base evaporation time based on coolant temperature, and a multiplier based on MAP."
panel = wwTauCltCurve
panel = wwTauMapCurve
dialog = wwBetaCurves, "Wall wetting AE impact fraction"
field = "#Set a base impact fraction based on coolant temperature, and a multiplier based on MAP."
panel = wwBetaCltCurve
panel = wwBetaMapCurve
dialog = auxValvesIO, "Outputs"
field = "aux valve #1", auxValves1
field = "aux valve #2", auxValves2
dialog = scriptSetting, "Setting"
field = "!Use rusEFI console for Lua script editing"
field = "Set number is not associated with the output number."
field = "Set number, only the cell number with some numbers."
field = "Name #1", scriptSettingName1
field = "Setting #1", scriptSetting1
field = "Name #2", scriptSettingName2
field = "Setting #2", scriptSetting2
field = "Name #3", scriptSettingName3
field = "Setting #3", scriptSetting3
field = "Name #4", scriptSettingName4
field = "Setting #4", scriptSetting4
field = "Name #5", scriptSettingName5
field = "Setting #5", scriptSetting5
field = "Name #6", scriptSettingName6
field = "Setting #6", scriptSetting6
dialog = scriptSettingDialog, "Script Settings", border
panel = scriptSetting, East
dialog = 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 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 = tcuControls, "Transmission Settings"
panel = transmissionPanel
panel = shiftSolenoidPanel
panel = otherSolenoidPanel
dialog = gearControls, "Gear Selection Settings"
panel = buttonShiftInputPanel
dialog = inputSpeedSensor, "Input Speed Sensor"
panel = inputSpeedSensorPanel
dialog = tccCurves, "TCC Lock/Unlock Speed"
panel = tccLockCurve
dialog = pcPerGearDialog, "Line Pressure Per Gear Steady State"
panel = pcPerGearCurve
dialog = pcPerShiftDialog, "Line Pressure Per Shift"
panel = pcPerShiftCurve
dialog = 32Dialog, "3-2 Shift Solenoid Percent by Speed"
panel = 32Curve
;Boost Open Loop
dialog = boostDialog, ""
field = "Enable", isBoostControlEnabled
field = "Control Mode", boostType, { isBoostControlEnabled }
field = "Output", boostControlPin, { boostControlPin != 0 || isBoostControlEnabled }
field = "Output Mode", boostControlPinMode, { isBoostControlEnabled }
field = "Frequency", boostPwmFrequency, { isBoostControlEnabled }
field = "Safe duty cycle", boostControlSafeDutyCycle, { isBoostControlEnabled }
field = "No boost control below RPM", boostControlMinRpm, { isBoostControlEnabled }
field = "No boost control below TPS", boostControlMinTps, { isBoostControlEnabled }
field = "No boost control below MAP", boostControlMinMap, { isBoostControlEnabled }
dialog = boostOpenLoopDialog, "", border
panel = boostTableTbl, Center
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 }
dialog = testMisc, "Misc"
commandButton = "Main Relay", cmd_test_main_relay
commandButton = "Fuel Pump", cmd_test_fuel_pump
commandButton = "Cooling Fan", cmd_test_fan_1
commandButton = "Cooling Fan 2", cmd_test_fan_2
commandButton = "A/C Relay", cmd_test_ac_relay
commandButton = "Check Engine", cmd_test_check_engine_light
commandButton = "Idle Air Valve", cmd_test_idle_valve
commandButton = "Idle Second Air Valve", cmd_test_second_idle_valve
commandButton = "HPFP Valve", cmd_test_hpfp_valve
commandButton = "Starter Relay", cmd_test_starter_relay
commandButton = "Stop Engine", cmd_stop_engine
commandButton = "Write Config", cmd_write_config
commandButton = "Reset ECU", cmd_reset_controller
commandButton = "Reset to DFU", cmd_dfu
commandButton = "Reset to OpenBLT", cmd_openblt
commandButton = "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 = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP
commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2
commandButton = "ETB test bench", cmd_set_engine_type_etb_test
commandButton = "TLE8888 test bench", cmd_set_engine_type_8888_test
commandButton = "Reset firmware settings", cmd_set_engine_type_default
; Board->ECU stimulator
dialog = ecuStimulator, "ECU stimulator"
field = "Trigger Simulator", 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 = ""
field = "Logic input channel 1", logicAnalyzerPins1
field = "Logic input channel 2", logicAnalyzerPins2
field = "Logic input channel 3", logicAnalyzerPins3
field = "Logic input channel 4", logicAnalyzerPins4
field = ""
field = "Engine chart size", engineChartSize
; Racing Features->Launch Control
dialog = smLaunchControlWest, "Launch Control Settings"
field = "Enable Launch Control", launchControlEnabled
field = "Activation Mode", launchActivationMode
field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)}
field = "Launch Button inverted", launchActivateInverted
field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Down inverted", clutchDownPinInverted
field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1}
field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1}
field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1}
field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1}
field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1}
field = "Hard Cut Mode"
field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1}
field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1}
dialog = smLaunchControl, "", border
panel = smLaunchControlWest, West
panel = launch_control_stateDialog, East
dialog = antiLagDialog, "AntiLag Settings"
field = "Enable AntiLag", antiLagEnabled
field = "Activation Mode", antiLagActivationMode
field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1}
field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1}
field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1}
field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1}
field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1}
field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1}
field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1}
field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1}
field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1}
field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1}
field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1}
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 = fancyHardwareDialog, "Fancy Boards"
field = "etbDutyThreshold", etbDutyThreshold
field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold
dialog = parkingLot, "Experimental/Broken"
field = uiMode, uiMode
field = kLineBaudRate, kLineBaudRate
field = verboseKLine, verboseKLine
field = auxiliarySetting1, auxiliarySetting1
field = kLineDoHondaSend, kLineDoHondaSend
field = hondaK, hondaK
field = kLinePeriodUs, kLinePeriodUs
field = canGpioType, canGpioType
field = "I understand ECU Locking", yesUnderstandLocking
field = "Tune read/write password", tuneHidingKey, { yesUnderstandLocking == 1 }
field = verboseQuad, verboseQuad
field = useEeprom, useEeprom
field = "#System hacks"
field = "vvtBooleanForVerySpecialCases", vvtBooleanForVerySpecialCases
field = tempBooleanForVerySpecialLogic, tempBooleanForVerySpecialLogic
field = "Global fuel correction", globalFuelCorrection
field = "TS over CAN debug", verboseIsoTp
field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex
field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning
field = "Warning Message", warning_message
field = "Ford redundant TPS mode", useFordRedundantTps
field = "Secondary TPS maximum", tpsSecondaryMaximum, {useFordRedundantTps}
field = "Ford redundant PPS mode", useFordRedundantPps
field = "Secondary PPS maximum", ppsSecondaryMaximum, {useFordRedundantPps}
field = "consumeObdSensors", consumeObdSensors, { canReadEnabled == 1 && canWriteEnabled == 1}
field = "Artificial Misfire", artificialTestMisfire
field = "Always use instant RPM", alwaysInstantRpm
field = vinNumber, vinNumber
field = turbochargerFilter, turbochargerFilter
field = auxFrequencyFilter, auxFrequencyFilter
field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors
field = "TODO KS mode 4569", kickStartCranking
panel = allTriggerDebug
panel = torqueTableTbl
help = helpGeneral, "rusEFI General Help"
webHelp = "http://www.rusefi.com/"
text = "<img src='https://rusefi.com/style/logo_100.gif'>"
dialog = vrThreshold1, "VR 1 Threshold"
field = "Pin", vrThreshold1_pin
panel = vrThresholdCurve1
dialog = vrThreshold2, "VR 2 Threshold"
field = "Pin", vrThreshold2_pin
panel = vrThresholdCurve2
dialog = vrThreshold
topicHelp = "vrThresholdHelp"
panel = vrThreshold1
panel = vrThreshold2
dialog = gppwm1left, ""
field = "Output", gppwm1_pin
field = ""
field = "Set frequency to 0hz for on-off mode"
field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0}
field = ""
field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0}
field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0}
field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0}
field = ""
field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0}
field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0}
field = "Note", gpPwmNote1
field = ""
field = ""
field = ""
field = ""
field = ""
dialog = gppwm1, "General Purpose PWM 1", xAxis
panel = gppwm1left
panel = gppwm1Tbl, {gppwm1_pin != 0}
dialog = gppwm2left, ""
field = "Output", gppwm2_pin
field = ""
field = "Set frequency to 0hz for on-off mode"
field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0}
field = ""
field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0}
field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0}
field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0}
field = ""
field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0}
field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0}
field = "Note", gpPwmNote2
field = ""
field = ""
field = ""
field = ""
field = ""
dialog = gppwm2, "General Purpose PWM 2", xAxis
panel = gppwm2left
panel = gppwm2Tbl, {gppwm2_pin != 0}
dialog = gppwm3left, ""
field = "Output", gppwm3_pin
field = ""
field = "Set frequency to 0hz for on-off mode"
field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0}
field = ""
field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0}
field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0}
field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0}
field = ""
field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0}
field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0}
field = "Note", gpPwmNote3
field = ""
field = ""
field = ""
field = ""
field = ""
dialog = gppwm3, "General Purpose PWM 3", xAxis
panel = gppwm3left
panel = gppwm3Tbl, {gppwm3_pin != 0}
dialog = gppwm4left, ""
field = "Output", gppwm4_pin
field = ""
field = "Set frequency to 0hz for on-off mode"
field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0}
field = ""
field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0}
field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0}
field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0}
field = ""
field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0}
field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0}
field = "Note", gpPwmNote4
field = ""
field = ""
field = ""
field = ""
field = ""
dialog = gppwm4, "General Purpose PWM 4", xAxis
panel = gppwm4left
panel = gppwm4Tbl, {gppwm4_pin != 0}
dialog = hpfpCamDialog, "HPFP Cam Configuration"
field = "Number of lobes", hpfpCamLobes
field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0}
field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0}
panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0}
dialog = hpfpPumpDialog, "HPFP Pump Configuration"
field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0}
field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0}
field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0}
field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0}
field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0}
field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0}
field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0}
field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0}
field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0}
field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0}
field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0}
field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0}
panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0}
[Tools]
;addTool = toolName, PanelName
addTool = veTableGenerator, "VE Table Generator", veTableTbl
#if LAMBDA
#else
addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl
#endif